[android] Proper fragment on up navigation from profile.

This commit is contained in:
Dmitry Yunitsky 2016-02-24 14:32:02 +03:00 committed by Sergey Yershov
parent 1b92eb6331
commit d491b3ee96
9 changed files with 50 additions and 6 deletions

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/ll__place_editor"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ll__place_editor"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/clickableBackground"
@ -10,12 +10,15 @@
android:orientation="horizontal"
android:paddingBottom="@dimen/margin_half"
android:paddingTop="@dimen/margin_half">
<ImageView
style="@style/PlacePageMetadataIcon"
android:src="@drawable/ic_edit"/>
android:src="@drawable/ic_edit"
android:tint="?colorAccent"/>
<TextView
android:id="@+id/tv__editor"
style="@style/PlacePageMetadataText"
tools:text="@string/pp_place_add"/>
android:textAppearance="@style/MwmTextAppearance.PlacePage.Accent"
tools:text="@string/edit_place"/>
</LinearLayout>

View file

@ -19,6 +19,7 @@ import com.mapswithme.maps.R;
import com.mapswithme.maps.widget.ToolbarController;
import com.mapswithme.util.Constants;
import com.mapswithme.util.Graphics;
import com.mapswithme.util.InputUtils;
import com.mapswithme.util.UiUtils;
import com.mapswithme.util.concurrency.ThreadPool;
import com.mapswithme.util.concurrency.UiThread;
@ -94,6 +95,7 @@ public class OsmAuthFragment extends BaseAuthFragment implements View.OnClickLis
private void login()
{
InputUtils.hideKeyboard(mEtLogin);
final String username = mEtLogin.getText().toString();
final String password = mEtPassword.getText().toString();
enableInput(false);

View file

@ -1,6 +1,7 @@
package com.mapswithme.maps.editor;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.format.DateUtils;
import android.view.Menu;
@ -10,8 +11,12 @@ import android.widget.ImageView;
import android.widget.TextView;
import com.mapswithme.maps.R;
import com.mapswithme.maps.settings.MiscPrefsFragment;
import com.mapswithme.maps.settings.SettingsActivity;
import com.mapswithme.maps.widget.ToolbarController;
import com.mapswithme.util.BottomSheetHelper;
import com.mapswithme.util.UiUtils;
import com.mapswithme.util.Utils;
public class ProfileFragment extends AuthFragment implements View.OnClickListener
{
@ -23,6 +28,22 @@ public class ProfileFragment extends AuthFragment implements View.OnClickListene
protected View mLogout;
private View mAuthBlock;
@Override
protected ToolbarController onCreateToolbarController(@NonNull View root)
{
return new ToolbarController(root, getActivity())
{
@Override
public void onUpClick()
{
final Bundle extras = new Bundle();
// Hack to open proper fragment in settings.
extras.putString(SettingsActivity.EXTRA_SHOW_FRAGMENT, MiscPrefsFragment.class.getName());
Utils.navigateToParent(mActivity, extras);
}
};
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState)
{

View file

@ -127,7 +127,7 @@ public class AboutFragment extends BaseSettingsFragment
case R.id.copyright:
Statistics.INSTANCE.trackEvent(Statistics.EventName.Settings.COPYRIGHT);
AlohaHelper.logClick(AlohaHelper.Settings.COPYRIGHT);
((SettingsActivity) getActivity()).switchToFragment(CopyrightFragment.class, R.string.copyright);
getSettingsActivity().switchToFragment(CopyrightFragment.class, R.string.copyright);
break;
}
} catch (ActivityNotFoundException e)

View file

@ -95,4 +95,9 @@ abstract class BaseSettingsFragment extends Fragment
lp.rightMargin = margin;
view.setLayoutParams(lp);
}
protected SettingsActivity getSettingsActivity()
{
return (SettingsActivity) getActivity();
}
}

View file

@ -31,4 +31,9 @@ abstract class BaseXmlSettingsFragment extends PreferenceFragment
org.alohalytics.Statistics.logEvent("$onPause", getClass().getSimpleName() + ":" +
UiUtils.deviceOrientationAsString(getActivity()));
}
protected SettingsActivity getSettingsActivity()
{
return (SettingsActivity) getActivity();
}
}

View file

@ -54,7 +54,7 @@ public class CopyrightFragment extends BaseSettingsFragment
public boolean onBackPressed()
{
if (!mDelegate.onBackPressed())
((SettingsActivity)getActivity()).switchToFragment(AboutFragment.class, R.string.about_menu_title);
getSettingsActivity().switchToFragment(AboutFragment.class, R.string.about_menu_title);
return true;
}

View file

@ -73,7 +73,7 @@ public class MapPrefsFragment extends BaseXmlSettingsFragment
.setPositiveButton(getString(R.string.ok), null)
.show();
else
((SettingsActivity)getActivity()).switchToFragment(StoragePathFragment.class, R.string.maps_storage);
getSettingsActivity().switchToFragment(StoragePathFragment.class, R.string.maps_storage);
return true;
}

View file

@ -11,6 +11,7 @@ import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.DimenRes;
import android.support.annotation.NonNull;
import android.support.v4.app.NavUtils;
@ -322,6 +323,13 @@ public class Utils
NavUtils.navigateUpFromSameTask(activity);
}
public static void navigateToParent(@NonNull Activity activity, @NonNull Bundle extras)
{
final Intent intent = NavUtils.getParentActivityIntent(activity);
intent.putExtras(extras);
NavUtils.navigateUpTo(activity, intent);
}
public static SpannableStringBuilder formatUnitsText(@DimenRes int size, @DimenRes int units, String dimension, String unitText)
{
final SpannableStringBuilder res = new SpannableStringBuilder(dimension).append(" ").append(unitText);