[android] Added start for result api for Ugc route activities

This commit is contained in:
Dmitry Donskoy 2018-11-06 16:49:15 +03:00 committed by Aleksandr Zatsepin
parent 53657206a3
commit 331f7b6b0a
12 changed files with 59 additions and 94 deletions

View file

@ -66,7 +66,6 @@
android:singleLine="true"
android:textAppearance="@style/MwmTextAppearance.Body3"
tools:text="42000000"/>
<TextView
android:id="@+id/author_name"
android:layout_width="wrap_content"

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/list_settings"
android:title="@string/list_settings"
android:title="@string/settings"
android:icon="@drawable/ic_24_px_settings"/>
<item android:id="@+id/set_show"/>
<item android:id="@+id/set_share"

View file

@ -1,13 +0,0 @@
package com.mapswithme.maps.base;
import android.database.Observable;
import android.support.v7.widget.RecyclerView;
public class DataObservable extends Observable<RecyclerView.AdapterDataObserver>
{
public void notifyChanged() {
for (int i = mObservers.size() - 1; i >= 0; i--) {
mObservers.get(i).onChanged();
}
}
}

View file

@ -1,11 +0,0 @@
package com.mapswithme.maps.base;
import android.database.Observable;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
public interface ObservableHost<T extends Observable<RecyclerView.AdapterDataObserver>>
{
@NonNull
T getObservable();
}

View file

@ -476,7 +476,7 @@ public abstract class BaseBookmarkCategoriesFragment extends BaseMwmRecyclerFrag
public void process(@NonNull BaseBookmarkCategoriesFragment frag,
@NonNull BookmarkCategory category)
{
UgcRouteSharingOptionsActivity.start(frag.getContext(), category);
UgcRouteSharingOptionsActivity.startForResult(frag.getActivity(), category);
}
}
@ -486,9 +486,7 @@ public abstract class BaseBookmarkCategoriesFragment extends BaseMwmRecyclerFrag
public void process(@NonNull BaseBookmarkCategoriesFragment frag,
@NonNull BookmarkCategory category)
{
Intent intent = new Intent(frag.getContext(), UgcRouteEditSettingsActivity.class);
intent.putExtra(UgcRouteEditSettingsActivity.EXTRA_BOOKMARK_CATEGORY, frag.mSelectedCategory);
frag.startActivity(intent);
UgcRouteEditSettingsActivity.startForResult(frag.getActivity(), category);
}
}
}

View file

@ -300,6 +300,6 @@ public class BookmarksListFragment extends BaseMwmRecyclerFragment<BookmarkListA
private void openSharingOptionsScreen()
{
UgcRouteSharingOptionsActivity.start(getContext(), getCategoryOrThrow());
UgcRouteSharingOptionsActivity.startForResult(getActivity(), getCategoryOrThrow());
}
}

View file

@ -1,30 +0,0 @@
package com.mapswithme.maps.ugc.routes;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import com.mapswithme.maps.base.BaseMwmFragmentActivity;
import com.mapswithme.maps.base.DataObservable;
import com.mapswithme.maps.base.ObservableHost;
public abstract class BaseEditUgcRouteActivity extends BaseMwmFragmentActivity implements ObservableHost<DataObservable>
{
@SuppressWarnings("NullableProblems")
@NonNull
private DataObservable mObservable;
@Override
protected void safeOnCreate(@Nullable Bundle savedInstanceState)
{
super.safeOnCreate(savedInstanceState);
mObservable = new DataObservable();
}
@NonNull
@Override
public DataObservable getObservable()
{
return mObservable;
}
}

View file

@ -0,0 +1,37 @@
package com.mapswithme.maps.ugc.routes;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import com.mapswithme.maps.base.BaseMwmFragmentActivity;
import com.mapswithme.maps.bookmarks.data.BookmarkCategory;
public abstract class BaseUgcRouteActivity extends BaseMwmFragmentActivity
{
public static final String EXTRA_BOOKMARK_CATEGORY = "bookmark_category";
@Override
protected void safeOnCreate(@Nullable Bundle savedInstanceState)
{
super.safeOnCreate(savedInstanceState);
checkForResultCall();
}
private void checkForResultCall()
{
if (getCallingActivity() == null)
throw new IllegalStateException(getClass().getSimpleName() + " must be started for result");
}
protected static <T> void startForResult(@NonNull Activity activity,
@NonNull BookmarkCategory category,
@NonNull Class<T> targetClass, int requestCode)
{
Intent intent = new Intent(activity, targetClass)
.putExtra(EXTRA_BOOKMARK_CATEGORY, category);
activity.startActivityForResult(intent, requestCode);
}
}

View file

@ -1,12 +1,16 @@
package com.mapswithme.maps.ugc.routes;
import android.app.Activity;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import com.mapswithme.maps.R;
import com.mapswithme.maps.base.BaseMwmFragmentActivity;
import com.mapswithme.maps.bookmarks.data.BookmarkCategory;
public class UgcRouteEditSettingsActivity extends BaseMwmFragmentActivity
public class UgcRouteEditSettingsActivity extends BaseUgcRouteActivity
{
public static final int REQUEST_CODE = 107;
@Override
protected int getContentLayoutResId()
{
@ -24,4 +28,9 @@ public class UgcRouteEditSettingsActivity extends BaseMwmFragmentActivity
{
return UgcRouteEditSettingsFragment.class;
}
public static void startForResult(@NonNull Activity activity, @NonNull BookmarkCategory category)
{
startForResult(activity, category, UgcRouteEditSettingsActivity.class, REQUEST_CODE);
}
}

View file

@ -23,8 +23,6 @@ import java.util.Objects;
public class UgcRouteEditSettingsFragment extends BaseMwmToolbarFragment
{
public static final String EXTRA_BOOKMARK_CATEGORY = "bookmark_category";
@SuppressWarnings("NullableProblems")
@NonNull
private BookmarkCategory mCategory;
@ -48,7 +46,7 @@ public class UgcRouteEditSettingsFragment extends BaseMwmToolbarFragment
Bundle args = getArguments();
if (args == null)
throw new IllegalArgumentException("Args must be not null");
mCategory = Objects.requireNonNull(args.getParcelable(EXTRA_BOOKMARK_CATEGORY));
mCategory = Objects.requireNonNull(args.getParcelable(UgcRouteEditSettingsActivity.EXTRA_BOOKMARK_CATEGORY));
}
@Nullable
@ -91,9 +89,7 @@ public class UgcRouteEditSettingsFragment extends BaseMwmToolbarFragment
private void openSharingOptionsScreen()
{
Intent intent = new Intent(getContext(), UgcRouteSharingOptionsActivity.class)
.putExtra(UgcSharingOptionsFragment.EXTRA_BOOKMARK_CATEGORY, mCategory);
startActivityForResult(intent, UgcRouteSharingOptionsActivity.REQUEST_CODE);
UgcRouteSharingOptionsActivity.startForResult(getActivity(), mCategory);
}
@Override

View file

@ -1,33 +1,16 @@
package com.mapswithme.maps.ugc.routes;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.app.Activity;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import com.mapswithme.maps.R;
import com.mapswithme.maps.base.BaseMwmFragmentActivity;
import com.mapswithme.maps.bookmarks.data.BookmarkCategory;
public class UgcRouteSharingOptionsActivity extends BaseMwmFragmentActivity
public class UgcRouteSharingOptionsActivity extends BaseUgcRouteActivity
{
public static final int REQUEST_CODE = 307;
@Override
protected void safeOnCreate(@Nullable Bundle savedInstanceState)
{
super.safeOnCreate(savedInstanceState);
checkForResultCall();
}
private void checkForResultCall()
{
if (getCallingActivity() == null)
throw new IllegalStateException("UgcRouteSharingOptionsActivity must be started for result");
}
@Override
protected Class<? extends Fragment> getFragmentClass()
{
@ -40,10 +23,8 @@ public class UgcRouteSharingOptionsActivity extends BaseMwmFragmentActivity
return R.layout.fragment_container_layout;
}
public static void start(@NonNull Context context, @NonNull BookmarkCategory category)
public static void startForResult(@NonNull Activity activity, @NonNull BookmarkCategory category)
{
Intent intent = new Intent(context, UgcRouteSharingOptionsActivity.class)
.putExtra(UgcSharingOptionsFragment.EXTRA_BOOKMARK_CATEGORY, category);
context.startActivity(intent);
startForResult(activity, category, UgcRouteSharingOptionsActivity.class, REQUEST_CODE);
}
}

View file

@ -35,7 +35,6 @@ import java.util.Objects;
public class UgcSharingOptionsFragment extends BaseMwmAuthorizationFragment implements BookmarkManager.BookmarksCatalogListener
{
public static final String EXTRA_BOOKMARK_CATEGORY = "bookmark_category";
private static final String NO_NETWORK_CONNECTION_DIALOG_TAG = "no_network_connection_dialog";
private static final String UPLOADING_PROGRESS_DIALOG_TAG = "uploading_progress_dialog";
@ -52,7 +51,7 @@ public class UgcSharingOptionsFragment extends BaseMwmAuthorizationFragment impl
{
super.onCreate(savedInstanceState);
Bundle args = Objects.requireNonNull(getArguments());
mCategory = Objects.requireNonNull(args.getParcelable(EXTRA_BOOKMARK_CATEGORY));
mCategory = Objects.requireNonNull(args.getParcelable(UgcRouteSharingOptionsActivity.EXTRA_BOOKMARK_CATEGORY));
}
@Nullable