Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

26 changes: 21 additions & 5 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,21 @@
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:ignore="GoogleAppIndexingWarning">
<activity
android:name=".CustomViewProvider"
android:exported="false">
<meta-data
android:name="android.app.lib_name"
android:value="" />
</activity>
<activity
android:name=".activity.ModifyButtonBanner"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activity.BannersConcierge"
Expand Down Expand Up @@ -53,6 +60,15 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activity.CustomViewProvider"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activity.DemoAppCompatActivityActionBar"
android:theme="@style/AppTheme" />
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
package com.flybits.conciergesample.activity

import android.content.Intent
import android.graphics.Color
import android.graphics.drawable.GradientDrawable
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Parcel
import android.os.Parcelable
import android.util.TypedValue
import android.view.LayoutInflater
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.navigation.Navigation
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.setupActionBarWithNavController
import com.flybits.android.kernel.models.LocalizedValue
import com.flybits.android.push.models.newPush.Push
import com.flybits.android.push.services.EXTRA_PUSH_NOTIFICATION
import com.flybits.commons.library.api.results.callbacks.BasicResultCallback
import com.flybits.commons.library.exceptions.FlybitsException
import com.flybits.concierge.Concierge
import com.flybits.concierge.ConciergeConstants
import com.flybits.concierge.enums.ConciergeOptions
import com.flybits.concierge.enums.Container
import com.flybits.concierge.models.CardBackgroundColor
import com.flybits.concierge.theming.ConciergeAppearance
import com.flybits.concierge.theming.getThemeColor
import com.flybits.concierge.theming.isDarkThemeOn
import com.flybits.conciergesample.R
import com.flybits.flybitscoreconcierge.BaseTemplate
import com.flybits.flybitscoreconcierge.idps.AnonymousConciergeIDP
import com.flybits.flybitscoreconcierge.viewproviders.FlybitsNavigator
import com.flybits.flybitscoreconcierge.viewproviders.FlybitsViewHolder
import com.flybits.flybitscoreconcierge.viewproviders.FlybitsViewProvider
import kotlinx.android.parcel.Parcelize

class CustomViewProvider : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.fullscreen_concierge)

val transaction = supportFragmentManager.beginTransaction()

Concierge.fragment(
this,
Container.None,
emptyList(),
arrayListOf(ConciergeOptions.CustomViewProviders(arrayListOf(
CardOfferViewProvider()
)))
).let {
transaction.replace(R.id.concierge_framelayout, it)
}

transaction.commit()

}

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.menu_options, menu)
return true
}

override fun onOptionsItemSelected(item: MenuItem): Boolean {
if (item.itemId == R.id.login_flybits) {
// Check if connected already.
if (!Concierge.isConnected(this)) {
// Call Connect and load the fragment.
Concierge.connect(this, AnonymousConciergeIDP())
} else {
Concierge.disconnect(this, object : BasicResultCallback {
override fun onException(exception: FlybitsException) {}

override fun onSuccess() {}
})
}
return true
}
return super.onOptionsItemSelected(item)
}
}

@Parcelize
class CardOffer(var title: String? = null,
var header: String? = null,) : BaseTemplate() {}

class CardOfferViewProvider: FlybitsViewProvider<CardOffer> {
override fun getClassType(): Class<CardOffer> {
return CardOffer::class.java
}

override fun getContentType(): String {
return "card-offer"
}

override fun onCreateViewHolder(parent: ViewGroup): FlybitsViewHolder<CardOffer> {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.card_offer_custom_template, parent, false)

return CardOfferViewHolder(view)
}

override fun onPushOpened(model: CardOffer, flybitsNavigator: FlybitsNavigator) {
}
}

class CardOfferViewHolder(val view: View): FlybitsViewHolder<CardOffer>(view) {
override fun bindData(data: CardOffer, flybitsNavigator: FlybitsNavigator) {
val title: TextView? = view.findViewById(R.id.card_offer_title)
val header: TextView? = view.findViewById(R.id.card_offer_header)

title?.text = data.title
header?.text = data.header
}
}
26 changes: 26 additions & 0 deletions app/src/main/res/layout/card_offer_custom_template.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView
android:id="@+id/card_offer_header"
android:layout_width="414dp"
android:layout_height="24dp"
android:text="TextView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/card_offer_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="TextView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/card_offer_header" />
</androidx.constraintlayout.widget.ConstraintLayout>
12 changes: 10 additions & 2 deletions app/src/main/res/navigation/nav_graph.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/nav_graph"
app:startDestination="@+id/banners_fragment">
android:label="Custom View Provider"
app:startDestination="@id/custom_view_provider">
<fragment
android:id="@+id/expose_fragment"
android:name="com.flybits.conciergesample.expose.FragmentForExpose"
Expand Down Expand Up @@ -35,7 +36,14 @@
android:id="@+id/action_modify_banners_self"
app:destination="@id/modify_banners" />
</fragment>

<fragment
android:id="@+id/custom_view_provider"
android:name="com.flybits.conciergesample.custom_view_provider.FragmentForCustomViewProvider"
android:label="Custom View Provider">
<action
android:id="@+id/action_fragmentForCustomViewProvider_self"
app:destination="@id/custom_view_provider" />
</fragment>


</navigation>