Skip to content
This repository has been archived by the owner on Jul 22, 2024. It is now read-only.

Commit

Permalink
Hamburger menu (#2071)
Browse files Browse the repository at this point in the history
  • Loading branch information
keianhzo committed Oct 29, 2019
1 parent ede1763 commit f21ed42
Show file tree
Hide file tree
Showing 9 changed files with 544 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
import org.mozilla.vrbrowser.ui.widgets.WindowWidget;
import org.mozilla.vrbrowser.ui.widgets.Windows;
import org.mozilla.vrbrowser.ui.widgets.dialogs.CrashDialogWidget;
import org.mozilla.vrbrowser.ui.widgets.dialogs.WhatsNewWidget;
import org.mozilla.vrbrowser.ui.widgets.prompts.ConfirmPromptWidget;
import org.mozilla.vrbrowser.utils.ConnectivityReceiver;
import org.mozilla.vrbrowser.utils.DeviceType;
Expand Down Expand Up @@ -315,6 +316,13 @@ public void onWindowClosed() {
attachToWindow(mWindows.getFocusedWindow(), null);

addWidgets(Arrays.asList(mRootWidget, mNavigationBar, mKeyboard, mTray));

// Show the what's upp dialog if we haven't showed it yet and this is v6.
if (!SettingsStore.getInstance(this).isWhatsNewDisplayed() && BuildConfig.VERSION_NAME.equals("6")) {
WhatsNewWidget whatsNew = new WhatsNewWidget(this);
whatsNew.getPlacement().parentHandle = mWindows.getFocusedWindow().getHandle();
whatsNew.show(UIWidget.REQUEST_FOCUS);
}
}

private void attachToWindow(@NonNull WindowWidget aWindow, @Nullable WindowWidget aPrevWindow) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ SettingsStore getInstance(final @NonNull Context aContext) {
public final static boolean TELEMETRY_STATUS_UPDATE_SENT_DEFAULT = false;
public final static boolean BOOKMARKS_SYNC_DEFAULT = true;
public final static boolean HISTORY_SYNC_DEFAULT = true;
public final static boolean WHATS_NEW_DISPLAYED = false;

// Enable telemetry by default (opt-out).
public final static boolean CRASH_REPORTING_DEFAULT = false;
Expand Down Expand Up @@ -623,5 +624,15 @@ public boolean isHistorySyncEnabled() {
return mPrefs.getBoolean(mContext.getString(R.string.settings_key_history_sync), HISTORY_SYNC_DEFAULT);
}

public void setWhatsNewDisplayed(boolean isEnabled) {
SharedPreferences.Editor editor = mPrefs.edit();
editor.putBoolean(mContext.getString(R.string.settings_key_whats_new_displayed), isEnabled);
editor.commit();
}

public boolean isWhatsNewDisplayed() {
return mPrefs.getBoolean(mContext.getString(R.string.settings_key_whats_new_displayed), WHATS_NEW_DISPLAYED);
}

}

Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*-
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */

package org.mozilla.vrbrowser.ui.widgets.dialogs;

import android.annotation.SuppressLint;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;

import androidx.databinding.DataBindingUtil;

import org.mozilla.geckoview.GeckoSessionSettings;
import org.mozilla.vrbrowser.R;
import org.mozilla.vrbrowser.VRBrowserApplication;
import org.mozilla.vrbrowser.browser.Accounts;
import org.mozilla.vrbrowser.browser.SettingsStore;
import org.mozilla.vrbrowser.browser.engine.SessionStore;
import org.mozilla.vrbrowser.databinding.WhatsNewBinding;
import org.mozilla.vrbrowser.ui.widgets.WidgetManagerDelegate;
import org.mozilla.vrbrowser.ui.widgets.WidgetPlacement;
import org.mozilla.vrbrowser.utils.UIThreadExecutor;

public class WhatsNewWidget extends UIDialog {

private WhatsNewBinding mBinding;
private Accounts mAccounts;

public WhatsNewWidget(Context aContext) {
super(aContext);
initialize();
}

public WhatsNewWidget(Context aContext, AttributeSet aAttrs) {
super(aContext, aAttrs);
initialize();
}

public WhatsNewWidget(Context aContext, AttributeSet aAttrs, int aDefStyle) {
super(aContext, aAttrs, aDefStyle);
initialize();
}

@SuppressLint("ClickableViewAccessibility")
private void initialize() {
LayoutInflater inflater = LayoutInflater.from(getContext());

mAccounts = ((VRBrowserApplication)getContext().getApplicationContext()).getAccounts();

// Inflate this data binding layout
mBinding = DataBindingUtil.inflate(inflater, R.layout.whats_new, this, true);

mBinding.signInButton.setOnClickListener(v -> signIn());
mBinding.startBrowsingButton.setOnClickListener(v -> onDismiss());
}

@Override
protected void initializeWidgetPlacement(WidgetPlacement aPlacement) {
aPlacement.visible = false;
aPlacement.width = WidgetPlacement.dpDimension(getContext(), R.dimen.whats_new_width);
aPlacement.height = WidgetPlacement.dpDimension(getContext(), R.dimen.whats_new_height);
aPlacement.parentAnchorX = 0.5f;
aPlacement.parentAnchorY = 0.0f;
aPlacement.anchorX = 0.5f;
aPlacement.anchorY = 0.5f;
aPlacement.translationY = WidgetPlacement.unitFromMeters(getContext(), R.dimen.settings_world_y) -
WidgetPlacement.unitFromMeters(getContext(), R.dimen.window_world_y);
aPlacement.translationZ = WidgetPlacement.unitFromMeters(getContext(), R.dimen.settings_world_z) -
WidgetPlacement.unitFromMeters(getContext(), R.dimen.window_world_z);
}

@Override
public void show(@ShowFlags int aShowFlags) {
super.show(aShowFlags);

mWidgetManager.pushWorldBrightness(this, WidgetManagerDelegate.DEFAULT_DIM_BRIGHTNESS);
}

@Override
public void hide(@HideFlags int aHideFlags) {
super.hide(aHideFlags);

SettingsStore.getInstance(getContext()).setWhatsNewDisplayed(true);

mWidgetManager.popWorldBrightness(this);
}

private void signIn() {
mAccounts.getAuthenticationUrlAsync().thenAcceptAsync((url) -> {
if (url != null) {
mAccounts.setLoginOrigin(Accounts.LoginOrigin.SETTINGS);
mWidgetManager.openNewTabForeground(url);
mWidgetManager.getFocusedWindow().getSession().setUaMode(GeckoSessionSettings.USER_AGENT_MODE_VR);
mWidgetManager.getFocusedWindow().getSession().loadUri(url);
onDismiss();
}
}, new UIThreadExecutor());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

import java.util.Arrays;

class ContentLanguageOptionsView extends SettingsView {
public class ContentLanguageOptionsView extends SettingsView {

private OptionsLanguageContentBinding mBinding;
private LanguagesAdapter mPreferredAdapter;
Expand Down
Loading

0 comments on commit f21ed42

Please sign in to comment.