Main activity: Add a showcase for adding an account.

Turn it off by default if upgrading to this version, because this means
the user most likely already knows how to add an account.
pull/14/head
Tom Hacohen 7 years ago
parent f650d38435
commit cb140a3387

@ -126,6 +126,9 @@ dependencies {
compile 'com.android.support:preference-v14:25.+'
compile 'com.github.yukuku:ambilwarna:2.0.1'
compile ('com.github.worker8:tourguide:1.0.17-SNAPSHOT@aar'){
transitive=true
}
compile 'io.requery:requery:1.2.0'
compile 'io.requery:requery-android:1.2.0'

@ -44,6 +44,8 @@ import com.etesync.syncadapter.model.ServiceDB;
import com.etesync.syncadapter.model.Settings;
import com.etesync.syncadapter.resource.LocalAddressBook;
import com.etesync.syncadapter.resource.LocalCalendar;
import com.etesync.syncadapter.ui.AccountsActivity;
import com.etesync.syncadapter.utils.HintManager;
import net.fortuna.ical4j.util.UidGenerator;
@ -289,6 +291,10 @@ public class App extends Application {
}
}
}
if (fromVersion < 10) {
HintManager.setHintSeen(this, AccountsActivity.HINT_ACCOUNT_ADD, true);
}
}
public static class AppUpdatedReceiver extends BroadcastReceiver {

@ -21,6 +21,7 @@ import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
@ -28,12 +29,20 @@ import android.widget.Toast;
import com.etesync.syncadapter.Constants;
import com.etesync.syncadapter.R;
import com.etesync.syncadapter.ui.setup.LoginActivity;
import com.etesync.syncadapter.utils.HintManager;
import com.etesync.syncadapter.utils.ShowcaseBuilder;
import tourguide.tourguide.Overlay;
import tourguide.tourguide.Pointer;
import tourguide.tourguide.ToolTip;
import tourguide.tourguide.TourGuide;
import static android.content.ContentResolver.SYNC_OBSERVER_TYPE_SETTINGS;
import static com.etesync.syncadapter.BuildConfig.DEBUG;
import static com.etesync.syncadapter.Constants.serviceUrl;
public class AccountsActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener, SyncStatusObserver {
public static final HintManager.Hint HINT_ACCOUNT_ADD = HintManager.registerHint("AddAccount");
private Snackbar syncStatusSnackbar;
private Object syncStatusObserver;
@ -77,6 +86,13 @@ public class AccountsActivity extends AppCompatActivity implements NavigationVie
}
PermissionsActivity.requestAllPermissions(this);
if (!HintManager.getHintSeen(this, HINT_ACCOUNT_ADD)) {
ShowcaseBuilder.getBuilder(this)
.setToolTip(new ToolTip().setTitle(getString(R.string.tourguide_title)).setDescription(getString(R.string.accounts_showcase_add)).setGravity(Gravity.TOP | Gravity.LEFT))
.playOn(fab);
HintManager.setHintSeen(this, HINT_ACCOUNT_ADD, true);
}
}
@Override

@ -0,0 +1,23 @@
package com.etesync.syncadapter.utils;
import android.app.Activity;
import android.view.View;
import tourguide.tourguide.Overlay;
import tourguide.tourguide.Pointer;
import tourguide.tourguide.TourGuide;
public class ShowcaseBuilder {
public static TourGuide getBuilder(Activity activity) {
final TourGuide ret = TourGuide.init(activity).with(TourGuide.Technique.Click)
.setPointer(new Pointer());
ret.setOverlay(new Overlay().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ret.cleanUp();
}
}));
return ret;
}
}

@ -16,6 +16,9 @@
<string name="please_wait">Please wait …</string>
<string name="send">Send</string>
<!-- tourguide -->
<string name="tourguide_title">Did you know?</string>
<!-- startup dialogs -->
<string name="startup_battery_optimization">Battery Optimization</string>
<string name="startup_battery_optimization_message">Android may disable/reduce EteSync synchronization after a few days. To prevent this, turn off battery optimization.</string>
@ -49,9 +52,10 @@
<string name="navigation_drawer_report_issue">Report issue</string>
<string name="navigation_drawer_contact">Contact developer</string>
<string name="account_list_empty">Welcome to EteSync!\n\nAdd an account to start.</string>
<string name="account_list_empty">Welcome to EteSync!</string>
<string name="accounts_global_sync_disabled">System-wide automatic synchronization is disabled</string>
<string name="accounts_global_sync_enable">Enable</string>
<string name="accounts_showcase_add">You need to add an account in order to use EteSync. Click here to add one...</string>
<!-- AccountUpdateService -->

Loading…
Cancel
Save