Add colors for wikivoyage ui; create base class for wikivoyage fragments

This commit is contained in:
alex 2018-03-29 17:00:36 +03:00
parent 8f2067074a
commit d91bed744f
5 changed files with 72 additions and 54 deletions

View file

@ -142,6 +142,8 @@
<color name="status_bar_dim_light">#8a4e00</color> <color name="status_bar_dim_light">#8a4e00</color>
<color name="status_bar_dim_dark">#13171a</color> <color name="status_bar_dim_dark">#13171a</color>
<color name="status_bar_coordinate_input_dark">#0d0f0f</color> <color name="status_bar_coordinate_input_dark">#0d0f0f</color>
<color name="status_bar_wikivoyage_light">#f2f2f2</color>
<color name="status_bar_wikivoyage_dark">#222526</color>
<color name="color_transparent">#0000</color> <color name="color_transparent">#0000</color>
@ -384,4 +386,15 @@
<color name="grid_menu_icon_dark">#808080</color> <color name="grid_menu_icon_dark">#808080</color>
<color name="wikivoyage_bg_light">#f0f0f0</color>
<color name="wikivoyage_bg_dark">#17191a</color>
<color name="wikivoyage_card_bg_light">#ffffff</color>
<color name="wikivoyage_card_bg_dark">#222526</color>
<color name="wikivoyage_card_divider_light">#f0f0f0</color>
<color name="wikivoyage_card_divider_dark">#2d3133</color>
<color name="wikivoyage_active_light">#237bff</color>
<color name="wikivoyage_active_dark">#d28521</color>
<color name="wikivoyage_app_bar_light">#f2f2f2</color>
<color name="wikivoyage_app_bar_dark">#222526</color>
</resources> </resources>

View file

@ -5,19 +5,16 @@ import android.support.annotation.NonNull;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentManager;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.webkit.WebView; import android.webkit.WebView;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.base.BaseOsmAndDialogFragment;
import net.osmand.plus.wikivoyage.data.WikivoyageArticle; import net.osmand.plus.wikivoyage.data.WikivoyageArticle;
import net.osmand.plus.wikivoyage.data.WikivoyageSearchResult; import net.osmand.plus.wikivoyage.data.WikivoyageSearchResult;
public class WikivoyageArticleDialogFragment extends BaseOsmAndDialogFragment { public class WikivoyageArticleDialogFragment extends WikivoyageBaseDialogFragment {
public static final String TAG = "WikivoyageArticleDialogFragment"; public static final String TAG = "WikivoyageArticleDialogFragment";
@ -26,24 +23,12 @@ public class WikivoyageArticleDialogFragment extends BaseOsmAndDialogFragment {
@Nullable @Nullable
@Override @Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final OsmandApplication app = getMyApplication(); final View mainView = inflate(R.layout.fragment_wikivoyage_article_dialog, container);
final int themeRes = isNightMode(false) ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme;
final View mainView = LayoutInflater.from(new ContextThemeWrapper(app, themeRes)) setupToolbar((Toolbar) mainView.findViewById(R.id.toolbar));
.inflate(R.layout.fragment_wikivoyage_article_dialog, container, false);
Toolbar toolbar = (Toolbar) mainView.findViewById(R.id.toolbar);
toolbar.setNavigationIcon(getContentIcon(R.drawable.ic_arrow_back));
toolbar.setNavigationContentDescription(R.string.access_shared_string_navigate_up);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
});
WikivoyageSearchResult searchResult = (WikivoyageSearchResult) getArguments().getParcelable(SEARCH_RESULT_KEY); WikivoyageSearchResult searchResult = (WikivoyageSearchResult) getArguments().getParcelable(SEARCH_RESULT_KEY);
WikivoyageArticle article = app.getWikivoyageDbHelper() WikivoyageArticle article = getMyApplication().getWikivoyageDbHelper()
.getArticle(searchResult.getCityId(), searchResult.getLang().get(0)); .getArticle(searchResult.getCityId(), searchResult.getLang().get(0));
WebView contentWebView = (WebView) mainView.findViewById(R.id.content_web_view); WebView contentWebView = (WebView) mainView.findViewById(R.id.content_web_view);

View file

@ -0,0 +1,47 @@
package net.osmand.plus.wikivoyage;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.annotation.LayoutRes;
import android.support.annotation.Nullable;
import android.support.v7.widget.Toolbar;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import net.osmand.plus.R;
import net.osmand.plus.base.BaseOsmAndDialogFragment;
public class WikivoyageBaseDialogFragment extends BaseOsmAndDialogFragment {
protected boolean nightMode;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
nightMode = isNightMode(false);
}
@Override
protected Drawable getContentIcon(int id) {
return getIcon(id, R.color.icon_color);
}
protected View inflate(@LayoutRes int layoutId, @Nullable ViewGroup container) {
int themeRes = nightMode ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme;
return LayoutInflater.from(new ContextThemeWrapper(getContext(), themeRes))
.inflate(layoutId, container, false);
}
protected void setupToolbar(Toolbar toolbar) {
toolbar.setNavigationIcon(getContentIcon(R.drawable.ic_arrow_back));
toolbar.setNavigationContentDescription(R.string.access_shared_string_navigate_up);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
});
}
}

View file

@ -5,39 +5,24 @@ import android.support.annotation.NonNull;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentManager;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.ImageView; import android.widget.ImageView;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.base.BaseOsmAndDialogFragment;
import net.osmand.plus.wikivoyage.search.WikivoyageSearchDialogFragment; import net.osmand.plus.wikivoyage.search.WikivoyageSearchDialogFragment;
public class WikivoyageExploreDialogFragment extends BaseOsmAndDialogFragment { public class WikivoyageExploreDialogFragment extends WikivoyageBaseDialogFragment {
public static final String TAG = "WikivoyageExploreDialogFragment"; public static final String TAG = "WikivoyageExploreDialogFragment";
@Nullable @Nullable
@Override @Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final OsmandApplication app = getMyApplication(); final View mainView = inflate(R.layout.fragment_wikivoyage_explore_dialog, container);
final int themeRes = isNightMode(false) ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme;
final View mainView = LayoutInflater.from(new ContextThemeWrapper(app, themeRes)) setupToolbar((Toolbar) mainView.findViewById(R.id.toolbar));
.inflate(R.layout.fragment_wikivoyage_explore_dialog, container, false);
Toolbar toolbar = (Toolbar) mainView.findViewById(R.id.toolbar);
toolbar.setNavigationIcon(getContentIcon(R.drawable.ic_arrow_back));
toolbar.setNavigationContentDescription(R.string.access_shared_string_navigate_up);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
});
((ImageView) mainView.findViewById(R.id.search_icon)) ((ImageView) mainView.findViewById(R.id.search_icon))
.setImageDrawable(getContentIcon(R.drawable.ic_action_search_dark)); .setImageDrawable(getContentIcon(R.drawable.ic_action_search_dark));

View file

@ -9,7 +9,6 @@ import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.text.Editable; import android.text.Editable;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -18,15 +17,14 @@ import android.widget.ImageButton;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import net.osmand.ResultMatcher; import net.osmand.ResultMatcher;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.base.BaseOsmAndDialogFragment;
import net.osmand.plus.wikivoyage.WikivoyageArticleDialogFragment; import net.osmand.plus.wikivoyage.WikivoyageArticleDialogFragment;
import net.osmand.plus.wikivoyage.WikivoyageBaseDialogFragment;
import net.osmand.plus.wikivoyage.data.WikivoyageSearchResult; import net.osmand.plus.wikivoyage.data.WikivoyageSearchResult;
import java.util.List; import java.util.List;
public class WikivoyageSearchDialogFragment extends BaseOsmAndDialogFragment { public class WikivoyageSearchDialogFragment extends WikivoyageBaseDialogFragment {
public static final String TAG = "WikivoyageSearchDialogFragment"; public static final String TAG = "WikivoyageSearchDialogFragment";
@ -45,22 +43,12 @@ public class WikivoyageSearchDialogFragment extends BaseOsmAndDialogFragment {
@Nullable @Nullable
@Override @Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final OsmandApplication app = getMyApplication(); searchHelper = new WikivoyageSearchHelper(getMyApplication());
searchHelper = new WikivoyageSearchHelper(app);
final int themeRes = isNightMode(false) ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme;
final View mainView = LayoutInflater.from(new ContextThemeWrapper(app, themeRes)) final View mainView = inflate(R.layout.fragment_wikivoyage_search_dialog, container);
.inflate(R.layout.fragment_wikivoyage_search_dialog, container, false);
Toolbar toolbar = (Toolbar) mainView.findViewById(R.id.toolbar); Toolbar toolbar = (Toolbar) mainView.findViewById(R.id.toolbar);
toolbar.setNavigationIcon(getContentIcon(R.drawable.ic_arrow_back)); setupToolbar(toolbar);
toolbar.setNavigationContentDescription(R.string.access_shared_string_navigate_up);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
});
searchEt = (EditText) toolbar.findViewById(R.id.searchEditText); searchEt = (EditText) toolbar.findViewById(R.id.searchEditText);
searchEt.setHint(R.string.shared_string_search); searchEt.setHint(R.string.shared_string_search);