diff --git a/folioreader/res/drawable/ic_tooltip1.xml b/folioreader/res/drawable/ic_tooltip1.xml
new file mode 100644
index 000000000..996099ca8
--- /dev/null
+++ b/folioreader/res/drawable/ic_tooltip1.xml
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/folioreader/res/drawable/ic_tooltip11.xml b/folioreader/res/drawable/ic_tooltip11.xml
new file mode 100644
index 000000000..c262ac05c
--- /dev/null
+++ b/folioreader/res/drawable/ic_tooltip11.xml
@@ -0,0 +1,8 @@
+
+
+
+
diff --git a/folioreader/res/drawable/ic_tooltip22.xml b/folioreader/res/drawable/ic_tooltip22.xml
new file mode 100644
index 000000000..20668bb62
--- /dev/null
+++ b/folioreader/res/drawable/ic_tooltip22.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
diff --git a/folioreader/res/drawable/ic_tooltip3.xml b/folioreader/res/drawable/ic_tooltip3.xml
new file mode 100644
index 000000000..a975c7f62
--- /dev/null
+++ b/folioreader/res/drawable/ic_tooltip3.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
diff --git a/folioreader/res/layout/folio_activity.xml b/folioreader/res/layout/folio_activity.xml
index 96c5bdd60..a386b5e6a 100644
--- a/folioreader/res/layout/folio_activity.xml
+++ b/folioreader/res/layout/folio_activity.xml
@@ -7,7 +7,7 @@
android:layout_height="match_parent"
tools:context="com.folioreader.ui.activity.FolioActivity"
tools:menu="@menu/menu_main">
-
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/folioreader/res/layout/tooltip_second.xml b/folioreader/res/layout/tooltip_second.xml
new file mode 100644
index 000000000..2bf91e1f2
--- /dev/null
+++ b/folioreader/res/layout/tooltip_second.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/folioreader/res/values/styles.xml b/folioreader/res/values/styles.xml
index e14bcb51a..5b56ba598 100644
--- a/folioreader/res/values/styles.xml
+++ b/folioreader/res/values/styles.xml
@@ -130,4 +130,11 @@
- @color/black
+
+
\ No newline at end of file
diff --git a/folioreader/src/main/java/com/folioreader/FolioReader.java b/folioreader/src/main/java/com/folioreader/FolioReader.java
index a8c69d4d6..1992552cc 100644
--- a/folioreader/src/main/java/com/folioreader/FolioReader.java
+++ b/folioreader/src/main/java/com/folioreader/FolioReader.java
@@ -39,6 +39,7 @@ public class FolioReader {
public static final String EXTRA_BOOK_ID = "com.folioreader.extra.BOOK_ID";
public static final String EXTRA_BOOK_ID2 = "com.folioreader.extra.BOOK_ID2";
public static final String EXTRA_LINK = "com.folioreader.extra.LINK";
+ public static final String EXTRA_STATUS_TOOLTIP = "com.folioreader.extra.STATUS_TOOLTIP";
public static final String EXTRA_READ_LOCATOR = "com.folioreader.extra.READ_LOCATOR";
public static final String EXTRA_PORT_NUMBER = "com.folioreader.extra.PORT_NUMBER";
public static final String EXTRA_PORT_NUMBER2 = "com.folioreader.extra.PORT_NUMBER2";
@@ -55,6 +56,7 @@ public class FolioReader {
private OnClosedListener onClosedListener;
private ReadLocator readLocator;
private String link;
+ private String statusTooltip;
@Nullable
public Retrofit retrofit;
@@ -171,6 +173,7 @@ private Intent getIntentFromUrl(String assetOrSdcardPath, int rawId) {
intent.putExtra(EXTRA_PORT_NUMBER, portNumber);
intent.putExtra(FolioActivity.EXTRA_READ_LOCATOR, (Parcelable) readLocator);
intent.putExtra(EXTRA_LINK, this.link);
+ intent.putExtra(EXTRA_STATUS_TOOLTIP, this.statusTooltip);
if (rawId != 0) {
intent.putExtra(FolioActivity.INTENT_EPUB_SOURCE_PATH, rawId);
@@ -255,6 +258,11 @@ public FolioReader setLinkPurchase(String linkPurchase) {
return singleton;
}
+ public FolioReader setStatusTooltip(String statusTooltip) {
+ this.statusTooltip = statusTooltip;
+ return singleton;
+ }
+
public void saveReceivedHighLights(List highlights,
OnSaveHighlight onSaveHighlight) {
new SaveReceivedHighlightTask(onSaveHighlight, highlights).execute();
diff --git a/folioreader/src/main/java/com/folioreader/ui/activity/FolioActivity.kt b/folioreader/src/main/java/com/folioreader/ui/activity/FolioActivity.kt
index 316309887..aa34f5921 100644
--- a/folioreader/src/main/java/com/folioreader/ui/activity/FolioActivity.kt
+++ b/folioreader/src/main/java/com/folioreader/ui/activity/FolioActivity.kt
@@ -90,6 +90,7 @@ class FolioActivity : AppCompatActivity(), FolioActivityCallback, MediaControlle
private var handler: Handler? = null
private var currentChapterIndex: Int = 0
+ private var tooltipStep: Int = 5
private var mFolioPageFragmentAdapter: FolioPageFragmentAdapter? = null
private var entryReadLocator: ReadLocator? = null
private var lastReadLocator: ReadLocator? = null
@@ -102,6 +103,8 @@ class FolioActivity : AppCompatActivity(), FolioActivityCallback, MediaControlle
private var mBookId: String? = null
private var mLink: String? = null
+ private var mStatusTooltip: String? = null
+ private var statusTooltip: String? = ""
private var mEpubFilePath: String? = null
private var mEpubSourceType: EpubSourceType? = null
private var mEpubRawId = 0
@@ -276,6 +279,7 @@ class FolioActivity : AppCompatActivity(), FolioActivityCallback, MediaControlle
mBookId = intent.getStringExtra(FolioReader.EXTRA_BOOK_ID)
mLink = intent.getStringExtra(FolioReader.EXTRA_LINK)
+ mStatusTooltip = intent.getStringExtra(FolioReader.EXTRA_STATUS_TOOLTIP)
mEpubSourceType = intent.extras!!.getSerializable(FolioActivity.INTENT_EPUB_SOURCE_TYPE) as EpubSourceType
if (mEpubSourceType == EpubSourceType.RAW) {
@@ -575,6 +579,15 @@ class FolioActivity : AppCompatActivity(), FolioActivityCallback, MediaControlle
return streamerUri.toString()
}
+ override fun getTooltipStatus(): String {
+ return statusTooltip.toString()
+ }
+
+ override fun setTooltipStatus() {
+ statusTooltip = "done"
+ }
+
+
override fun onDirectionChange(newDirection: Config.Direction) {
Log.v(LOG_TAG, "-> onDirectionChange")
@@ -587,7 +600,7 @@ class FolioActivity : AppCompatActivity(), FolioActivityCallback, MediaControlle
mFolioPageViewPager!!.setDirection(newDirection)
mFolioPageFragmentAdapter = FolioPageFragmentAdapter(
supportFragmentManager,
- spine, bookFileName, mBookId, mLink
+ spine, bookFileName, mBookId, mLink, mStatusTooltip
)
mFolioPageViewPager!!.adapter = mFolioPageFragmentAdapter
mFolioPageViewPager!!.currentItem = currentChapterIndex
@@ -762,7 +775,7 @@ class FolioActivity : AppCompatActivity(), FolioActivityCallback, MediaControlle
}
}
- private fun hideSystemUI() {
+ override fun hideSystemUI() {
Log.v(LOG_TAG, "-> hideSystemUI")
if (Build.VERSION.SDK_INT >= 16) {
@@ -883,6 +896,14 @@ class FolioActivity : AppCompatActivity(), FolioActivityCallback, MediaControlle
return currentChapterIndex
}
+ override fun getTooltipStep(): String {
+ return tooltipStep.toString()
+ }
+
+ override fun setTooltipStep() {
+ tooltipStep = 10
+ }
+
private fun configFolio() {
mFolioPageViewPager = findViewById(R.id.folioPageViewPager)
@@ -931,7 +952,7 @@ class FolioActivity : AppCompatActivity(), FolioActivityCallback, MediaControlle
mFolioPageViewPager!!.setDirection(direction)
mFolioPageFragmentAdapter = FolioPageFragmentAdapter(
supportFragmentManager,
- spine, bookFileName, mBookId, mLink
+ spine, bookFileName, mBookId, mLink, mStatusTooltip
)
mFolioPageViewPager!!.adapter = mFolioPageFragmentAdapter
diff --git a/folioreader/src/main/java/com/folioreader/ui/activity/FolioActivityCallback.java b/folioreader/src/main/java/com/folioreader/ui/activity/FolioActivityCallback.java
index 502a54cfa..354eefe0d 100644
--- a/folioreader/src/main/java/com/folioreader/ui/activity/FolioActivityCallback.java
+++ b/folioreader/src/main/java/com/folioreader/ui/activity/FolioActivityCallback.java
@@ -11,6 +11,10 @@ public interface FolioActivityCallback {
int getCurrentChapterIndex();
+ String getTooltipStep();
+
+ void setTooltipStep();
+
ReadLocator getEntryReadLocator();
boolean goToChapter(String href);
@@ -23,6 +27,8 @@ public interface FolioActivityCallback {
void toggleSystemUI();
+ void hideSystemUI();
+
void setDayMode();
void setNightMode();
@@ -36,4 +42,7 @@ public interface FolioActivityCallback {
WeakReference getActivity();
String getStreamerUrl();
+ String getTooltipStatus();
+
+ void setTooltipStatus();
}
diff --git a/folioreader/src/main/java/com/folioreader/ui/adapter/FolioPageFragmentAdapter.java b/folioreader/src/main/java/com/folioreader/ui/adapter/FolioPageFragmentAdapter.java
index e18657ae9..bd813d19d 100644
--- a/folioreader/src/main/java/com/folioreader/ui/adapter/FolioPageFragmentAdapter.java
+++ b/folioreader/src/main/java/com/folioreader/ui/adapter/FolioPageFragmentAdapter.java
@@ -24,16 +24,21 @@ public class FolioPageFragmentAdapter extends FragmentStatePagerAdapter {
private String mEpubFileName;
private String mBookId;
private String mLink;
+ private String mStatusTooltip;
private ArrayList fragments;
private ArrayList savedStateList;
public FolioPageFragmentAdapter(FragmentManager fragmentManager, List spineReferences,
- String epubFileName, String bookId, String link) {
+ String epubFileName, String bookId, String link, String statusTooltip) {
super(fragmentManager);
+ Log.d("----->", statusTooltip);
+ Log.d("----- epubFileName >", epubFileName);
+
this.mSpineReferences = spineReferences;
this.mEpubFileName = epubFileName;
this.mBookId = bookId;
this.mLink = link;
+ this.mStatusTooltip = statusTooltip;
fragments = new ArrayList<>(Arrays.asList(new Fragment[mSpineReferences.size()]));
}
@@ -60,7 +65,7 @@ public Fragment getItem(int position) {
Fragment fragment = fragments.get(position);
if (fragment == null) {
fragment = FolioPageFragment.newInstance(position,
- mEpubFileName, mSpineReferences.get(position), mBookId, mLink);
+ mEpubFileName, mSpineReferences.get(position), mBookId, mLink, mStatusTooltip);
fragments.set(position, fragment);
}
return fragment;
diff --git a/folioreader/src/main/java/com/folioreader/ui/fragment/FolioPageFragment.kt b/folioreader/src/main/java/com/folioreader/ui/fragment/FolioPageFragment.kt
index 6d19d00e5..d101816b2 100644
--- a/folioreader/src/main/java/com/folioreader/ui/fragment/FolioPageFragment.kt
+++ b/folioreader/src/main/java/com/folioreader/ui/fragment/FolioPageFragment.kt
@@ -54,6 +54,17 @@ import java.util.regex.Pattern
import android.app.AlertDialog;
import android.widget.Toast
import android.content.DialogInterface
+import android.graphics.drawable.ColorDrawable
+import android.widget.ImageView
+import kotlinx.android.synthetic.main.login.*
+import kotlinx.android.synthetic.main.tooltip_second.*
+import android.view.WindowManager
+import android.view.Window;
+import android.view.Gravity;
+import android.view.ViewGroup.LayoutParams
+import com.folioreader.ui.view.ConfigBottomSheetDialogFragment
+// import android.support.v4.app.FragmentManager;
+ import androidx.fragment.app.FragmentManager;
/**
* Created by mahavir on 4/2/16.
*/
@@ -72,7 +83,7 @@ class FolioPageFragment : Fragment(),
const val BUNDLE_SEARCH_LOCATOR = "BUNDLE_SEARCH_LOCATOR"
@JvmStatic
- fun newInstance(spineIndex: Int, bookTitle: String, spineRef: Link, bookId: String, link: String): FolioPageFragment {
+ fun newInstance(spineIndex: Int, bookTitle: String, spineRef: Link, bookId: String, link: String, statusTooltip: String): FolioPageFragment {
val fragment = FolioPageFragment()
val args = Bundle()
args.putInt(BUNDLE_SPINE_INDEX, spineIndex)
@@ -80,6 +91,7 @@ class FolioPageFragment : Fragment(),
args.putString(FolioReader.EXTRA_BOOK_ID, bookId)
args.putString(FolioReader.EXTRA_BOOK_ID2, bookId)
args.putString(FolioReader.EXTRA_LINK, link)
+ args.putString(FolioReader.EXTRA_STATUS_TOOLTIP, statusTooltip)
args.putSerializable(BUNDLE_SPINE_ITEM, spineRef)
fragment.arguments = args
return fragment
@@ -98,6 +110,7 @@ class FolioPageFragment : Fragment(),
private var savedInstanceState: Bundle? = null
private var mRootView: View? = null
+ private var mRootView2: View? = null
private var loadingView: LoadingView? = null
private var mScrollSeekbar: VerticalSeekbar? = null
@@ -117,6 +130,7 @@ class FolioPageFragment : Fragment(),
private var mIsPageReloaded: Boolean = false
private var mIsShowRemindPurchase: Boolean = false
private var popupShowed: Boolean = false
+ private var test: Boolean = false
private var highlightStyle: String? = null
@@ -124,6 +138,7 @@ class FolioPageFragment : Fragment(),
private var mConfig: Config? = null
private var mBookId: String? = null
private var mLink: String? = null
+ private var mStatusTooltip: String? = null
var searchLocatorVisible: SearchLocator? = null
private lateinit var chapterUrl: Uri
@@ -154,6 +169,7 @@ class FolioPageFragment : Fragment(),
spineItem = arguments!!.getSerializable(BUNDLE_SPINE_ITEM) as Link
mBookId = arguments!!.getString(FolioReader.EXTRA_BOOK_ID)
mLink = arguments!!.getString(FolioReader.EXTRA_LINK)
+ mStatusTooltip = arguments!!.getString(FolioReader.EXTRA_STATUS_TOOLTIP)
chapterUrl = Uri.parse(mActivityCallback?.streamerUrl + spineItem.href!!.substring(1))
@@ -181,11 +197,15 @@ class FolioPageFragment : Fragment(),
initAnimations()
initWebView()
updatePagesLeftTextBg()
+ // mRootView2 = getLayoutInflater().inflate(R.layout.login, container, false)
+ // val btn:ImageView = mRootView2!!.findViewById(R.id.btn_tooltip1)
-
+ // btn.setOnClickListener {
+ // Log.v("test", "======>")
+ // }
return mRootView
}
@@ -379,6 +399,49 @@ class FolioPageFragment : Fragment(),
alert.show()
}
+ fun showGuidePopup() {
+ val mDialogView = LayoutInflater.from(getActivity()).inflate(R.layout.login, null)
+ //AlertDialogBuilder
+ val mBuilder = AlertDialog.Builder(getActivity())
+ .setView(mDialogView)
+ // .setTitle("Login Form")
+ //show dialog
+ val mAlertDialog = mBuilder.show()
+ val dialogButton:ImageView = mAlertDialog.findViewById(R.id.btn_tooltip1)
+ // mRootView2 = getLayoutInflater().inflate(R.layout.login, container, false)
+
+
+ // val btn = findViewById(R.id.btn_tooltip1) as ImageView
+ dialogButton.setOnClickListener {
+ // onBackPressed()
+ mAlertDialog.dismiss()
+ showGuidePopup2()
+ }
+ // mAlertDialog.getWindow().setGravity(Gravity.TOP)
+ mAlertDialog?.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
+ }
+
+ fun showGuidePopup2() {
+ val mDialogView = LayoutInflater.from(getActivity()).inflate(R.layout.tooltip_second, null)
+ //AlertDialogBuilder
+ val mBuilder = AlertDialog.Builder(getActivity())
+ .setView(mDialogView)
+ // .setTitle("Login Form")
+ //show dialog
+ val mAlertDialog = mBuilder.show()
+
+ val dialogButton:ImageView = mAlertDialog.findViewById(R.id.btn_tooltip2)
+ dialogButton.setOnClickListener {
+ mAlertDialog.dismiss()
+ showConfigBottomSheetDialogFragment()
+ }
+
+ mAlertDialog.getWindow().setGravity(Gravity.TOP)
+ mAlertDialog.getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
+
+ mAlertDialog?.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
+ }
+
fun scrollToFirst() {
val isPageLoading = loadingView == null || loadingView!!.visibility == View.VISIBLE
@@ -438,7 +501,6 @@ class FolioPageFragment : Fragment(),
private val webViewClient = object : WebViewClient() {
override fun onPageFinished(view: WebView, url: String) {
-
mWebview!!.loadUrl("javascript:checkCompatMode()")
mWebview!!.loadUrl("javascript:alert(getReadingTime())")
@@ -501,6 +563,14 @@ class FolioPageFragment : Fragment(),
} else if (isCurrentFragment) {
+ if (mActivityCallback!!.tooltipStep.count() < 2 && mStatusTooltip!!.count() > 0) {
+ showGuidePopup()
+ mActivityCallback!!.tooltipStep()
+ }
+
+ val a = mActivityCallback!!.getTooltipStatus()
+ mActivityCallback!!.setTooltipStatus()
+
val readLocator: ReadLocator?
if (savedInstanceState == null) {
Log.v(LOG_TAG, "-> onPageFinished -> took from getEntryReadLocator")
@@ -530,6 +600,7 @@ class FolioPageFragment : Fragment(),
}
}
+
Log.d("length", mActivityCallback!!.currentChapterIndex.toString())
}
@@ -930,4 +1001,12 @@ class FolioPageFragment : Fragment(),
mWebview!!.loadUrl(getString(R.string.callClearSelection))
searchLocatorVisible = null
}
+
+ fun showConfigBottomSheetDialogFragment() {
+ ConfigBottomSheetDialogFragment().show(
+ getActivity()!!.getSupportFragmentManager(),
+ ConfigBottomSheetDialogFragment.LOG_TAG
+ )
+ }
+
}
diff --git a/sample/src/main/java/com/folioreader/android/sample/HomeActivity.java b/sample/src/main/java/com/folioreader/android/sample/HomeActivity.java
index cce7c2ab2..a7ae80537 100644
--- a/sample/src/main/java/com/folioreader/android/sample/HomeActivity.java
+++ b/sample/src/main/java/com/folioreader/android/sample/HomeActivity.java
@@ -54,6 +54,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
.setOnHighlightListener(this)
.setReadLocatorListener(this)
.setLinkPurchase("")
+ .setStatusTooltip("")
.setOnClosedListener(this);
getHighlightsAndSave();