mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-16 20:59:54 +01:00
Wait for layout before showing onboarding tap target.
This commit is contained in:
@@ -9,6 +9,7 @@ import android.view.LayoutInflater;
|
|||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
|
||||||
import android.widget.BaseAdapter;
|
import android.widget.BaseAdapter;
|
||||||
import android.widget.GridView;
|
import android.widget.GridView;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
@@ -166,13 +167,21 @@ public class NavDrawerActivity extends BriarActivity implements
|
|||||||
drawerLayout.addDrawerListener(drawerToggle);
|
drawerLayout.addDrawerListener(drawerToggle);
|
||||||
navigation.setNavigationItemSelectedListener(this);
|
navigation.setNavigationItemSelectedListener(this);
|
||||||
|
|
||||||
|
// Wait for the drawer to be laid out before trying to position the
|
||||||
|
// onboarding tap target
|
||||||
|
drawerLayout.getViewTreeObserver().addOnGlobalLayoutListener(
|
||||||
|
new OnGlobalLayoutListener() {
|
||||||
|
@Override
|
||||||
|
public void onGlobalLayout() {
|
||||||
|
drawerLayout.getViewTreeObserver()
|
||||||
|
.removeOnGlobalLayoutListener(this);
|
||||||
|
observeTransportsOnboarding();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
initializeTransports();
|
initializeTransports();
|
||||||
transportsView.setAdapter(transportsAdapter);
|
transportsView.setAdapter(transportsAdapter);
|
||||||
|
|
||||||
observeOnce(navDrawerViewModel.showTransportsOnboarding(), this, show ->
|
|
||||||
observeOnce(torIcon, this, imageView ->
|
|
||||||
showTransportsOnboarding(show, imageView)));
|
|
||||||
|
|
||||||
lockManager.isLockable().observe(this, this::setLockVisible);
|
lockManager.isLockable().observe(this, this::setLockVisible);
|
||||||
|
|
||||||
if (lifecycleManager.getLifecycleState().isAfter(RUNNING)) {
|
if (lifecycleManager.getLifecycleState().isAfter(RUNNING)) {
|
||||||
@@ -184,6 +193,16 @@ public class NavDrawerActivity extends BriarActivity implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void observeTransportsOnboarding() {
|
||||||
|
observeOnce(navDrawerViewModel.showTransportsOnboarding(), this,
|
||||||
|
show -> {
|
||||||
|
if (show) {
|
||||||
|
observeOnce(torIcon, this,
|
||||||
|
this::showTransportsOnboarding);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStart() {
|
public void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
@@ -452,22 +471,20 @@ public class NavDrawerActivity extends BriarActivity implements
|
|||||||
return transport;
|
return transport;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showTransportsOnboarding(boolean show, ImageView imageView) {
|
private void showTransportsOnboarding(ImageView imageView) {
|
||||||
if (show) {
|
int color = resolveColorAttribute(this, R.attr.colorControlNormal);
|
||||||
int color = resolveColorAttribute(this, R.attr.colorControlNormal);
|
Drawable drawable = VectorDrawableCompat
|
||||||
Drawable drawable = VectorDrawableCompat
|
.create(getResources(), R.drawable.transport_tor, null);
|
||||||
.create(getResources(), R.drawable.transport_tor, null);
|
new MaterialTapTargetPrompt.Builder(NavDrawerActivity.this,
|
||||||
new MaterialTapTargetPrompt.Builder(NavDrawerActivity.this,
|
R.style.OnboardingDialogTheme).setTarget(imageView)
|
||||||
R.style.OnboardingDialogTheme).setTarget(imageView)
|
.setPrimaryText(R.string.network_settings_title)
|
||||||
.setPrimaryText(R.string.network_settings_title)
|
.setSecondaryText(R.string.transports_onboarding_text)
|
||||||
.setSecondaryText(R.string.transports_onboarding_text)
|
.setIconDrawable(drawable)
|
||||||
.setIconDrawable(drawable)
|
.setIconDrawableColourFilter(color)
|
||||||
.setIconDrawableColourFilter(color)
|
.setBackgroundColour(
|
||||||
.setBackgroundColour(
|
ContextCompat.getColor(this, R.color.briar_primary))
|
||||||
ContextCompat.getColor(this, R.color.briar_primary))
|
.show();
|
||||||
.show();
|
navDrawerViewModel.transportsOnboardingShown();
|
||||||
navDrawerViewModel.transportsOnboardingShown();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class Transport {
|
private static class Transport {
|
||||||
|
|||||||
Reference in New Issue
Block a user