mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-04-14 19:56:32 +00:00
Create TavernActivity / extract Sidebar Strings / extract MainDrawerBuilder
This commit is contained in:
parent
9f7582b81f
commit
b26e48c104
8 changed files with 245 additions and 60 deletions
|
|
@ -77,8 +77,17 @@
|
|||
<activity
|
||||
android:name=".TaskFormActivity"
|
||||
android:label="@string/title_activity_task_form"
|
||||
android:theme="@style/AppThemeWithActionBarBlackText"
|
||||
android:parentActivityName=".MainActivity" >
|
||||
android:parentActivityName=".MainActivity"
|
||||
android:theme="@style/AppThemeWithActionBarBlackText" >
|
||||
<meta-data
|
||||
android:name="android.support.PARENT_ACTIVITY"
|
||||
android:value="com.habitrpg.android.habitica.MainActivity" />
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".TavernActivity"
|
||||
android:label="@string/title_activity_tavern"
|
||||
android:parentActivityName=".MainActivity"
|
||||
android:theme="@style/AppThemeWithOwnActionBar">
|
||||
<meta-data
|
||||
android:name="android.support.PARENT_ACTIVITY"
|
||||
android:value="com.habitrpg.android.habitica.MainActivity" />
|
||||
|
|
|
|||
37
Habitica/res/layout/activity_tavern.xml
Normal file
37
Habitica/res/layout/activity_tavern.xml
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:id="@+id/drawer_layout"
|
||||
tools:context=".TavernActivity">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/layout_main"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:fitsSystemWindows="true"
|
||||
android:layout_marginTop="25dp">
|
||||
|
||||
<android.support.v7.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:minHeight="?attr/actionBarSize"
|
||||
android:background="?attr/colorPrimary" />
|
||||
|
||||
<!-- As the main content view, the view below consumes the entire
|
||||
space available using match_parent in both dimensions. -->
|
||||
<FrameLayout
|
||||
android:id="@+id/content_frame"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/white">
|
||||
|
||||
<TextView android:text="Text" android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
</android.support.v4.widget.DrawerLayout>
|
||||
16
Habitica/res/values/strings.sidebar.xml
Normal file
16
Habitica/res/values/strings.sidebar.xml
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="sidebar.tasks">Tasks</string>
|
||||
<string name="sidebar.section.social">Social</string>
|
||||
<string name="sidebar.tavern">Tavern</string>
|
||||
<string name="sidebar.party">Party</string>
|
||||
<string name="sidebar.guilds">Guilds</string>
|
||||
<string name="sidebar.challenges">Challenges</string>
|
||||
<string name="sidebar.section.inventory">Inventory</string>
|
||||
<string name="sidebar.avatar">Avatar</string>
|
||||
<string name="sidebar.equipment">Equipment</string>
|
||||
<string name="sidebar.stable">Stable</string>
|
||||
<string name="sidebar.news">News</string>
|
||||
<string name="sidebar.settings">Settings</string>
|
||||
<string name="sidebar.about">About</string>
|
||||
</resources>
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
<string name="action_barcode">Scan a barcode</string>
|
||||
<string name="ERR_pb_barcode">Prefs couldn\'t be loaded from the barcode</string>
|
||||
<string name="settings_changed">Settings were successfully updated!</string>
|
||||
<string name="pref_dialog_title">HabitRPG settings</string>
|
||||
<string name="pref_dialog_title">Habitica settings</string>
|
||||
<string name="string_pref_dialog_positive">OK</string>
|
||||
|
||||
<!-- Prefs -->
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
<string name="SP_address">ServerAdress</string>
|
||||
<string name="SP_address_title">Server Address</string>
|
||||
<string name="SP_address_summary">Enter the address of the server</string>
|
||||
<string name="SP_address_default">https://habitrpg.com/</string>
|
||||
<string name="SP_address_default">https://habitica.com/</string>
|
||||
<string name="SP_address_hint">Your custom server</string>
|
||||
<string name="SP_userID">UserID</string>
|
||||
<string name="SP_userID_title">User ID</string>
|
||||
|
|
@ -146,5 +146,6 @@
|
|||
<string name="friday">Friday</string>
|
||||
<string name="saturday">Saturday</string>
|
||||
<string name="sunday">Sunday</string>
|
||||
<string name="title_activity_tavern">Tavern</string>
|
||||
|
||||
</resources>
|
||||
|
|
@ -36,6 +36,11 @@
|
|||
<item name="actionOverflowMenuStyle">@style/PopupTheme</item>
|
||||
</style>
|
||||
|
||||
<style name="AppThemeWithOwnActionBar" parent="AppTheme">
|
||||
<item name="android:windowDrawsSystemBarBackgrounds" tools:targetApi="21">false</item>
|
||||
<item name="android:windowTranslucentStatus" tools:targetApi="21">false</item>
|
||||
</style>
|
||||
|
||||
<style name="AppThemeWithActionBar" parent="AppTheme">
|
||||
<item name="windowActionBar">true</item>
|
||||
<item name="windowNoTitle">false</item>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.habitrpg.android.habitica;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.databinding.ObservableArrayList;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.support.design.widget.Snackbar;
|
||||
|
|
@ -23,10 +22,17 @@ import com.habitrpg.android.habitica.callbacks.HabitRPGUserCallback;
|
|||
import com.habitrpg.android.habitica.callbacks.TaskCreationCallback;
|
||||
import com.habitrpg.android.habitica.callbacks.TaskScoringCallback;
|
||||
import com.habitrpg.android.habitica.callbacks.TaskUpdateCallback;
|
||||
import com.habitrpg.android.habitica.events.*;
|
||||
import com.habitrpg.android.habitica.events.AddTaskTappedEvent;
|
||||
import com.habitrpg.android.habitica.events.BuyRewardTappedEvent;
|
||||
import com.habitrpg.android.habitica.events.HabitScoreEvent;
|
||||
import com.habitrpg.android.habitica.events.TaskLongPressedEvent;
|
||||
import com.habitrpg.android.habitica.events.TaskSaveEvent;
|
||||
import com.habitrpg.android.habitica.events.TaskTappedEvent;
|
||||
import com.habitrpg.android.habitica.events.TodoCheckedEvent;
|
||||
import com.habitrpg.android.habitica.prefs.PrefsActivity;
|
||||
import com.habitrpg.android.habitica.ui.AvatarWithBarsViewModel;
|
||||
import com.habitrpg.android.habitica.ui.EditTextDrawer;
|
||||
import com.habitrpg.android.habitica.ui.MainDrawerBuilder;
|
||||
import com.habitrpg.android.habitica.ui.adapter.HabitItemRecyclerViewAdapter;
|
||||
import com.habitrpg.android.habitica.ui.fragments.TaskRecyclerViewFragment;
|
||||
import com.instabug.wrapper.support.activity.InstabugAppCompatActivity;
|
||||
|
|
@ -35,18 +41,15 @@ import com.magicmicky.habitrpgwrapper.lib.models.HabitRPGUser;
|
|||
import com.magicmicky.habitrpgwrapper.lib.models.Tag;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.TaskDirection;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.TaskDirectionData;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Task;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.ItemData;
|
||||
import com.magicmicky.habitrpgwrapper.lib.models.tasks.Task;
|
||||
import com.mikepenz.materialdrawer.Drawer;
|
||||
import com.mikepenz.materialdrawer.DrawerBuilder;
|
||||
import com.mikepenz.materialdrawer.model.DividerDrawerItem;
|
||||
import com.mikepenz.materialdrawer.model.PrimaryDrawerItem;
|
||||
import com.mikepenz.materialdrawer.model.SecondaryDrawerItem;
|
||||
import com.mikepenz.materialdrawer.model.SectionDrawerItem;
|
||||
import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem;
|
||||
import com.raizlabs.android.dbflow.runtime.FlowContentObserver;
|
||||
import com.raizlabs.android.dbflow.sql.builder.Condition;
|
||||
import com.raizlabs.android.dbflow.sql.builder.ConditionQueryBuilder;
|
||||
import com.raizlabs.android.dbflow.sql.language.Select;
|
||||
import com.raizlabs.android.dbflow.structure.BaseModel;
|
||||
import com.raizlabs.android.dbflow.structure.Model;
|
||||
|
|
@ -68,8 +71,7 @@ public class MainActivity extends InstabugAppCompatActivity implements HabitRPGU
|
|||
TaskScoringCallback.OnTaskScored, OnTaskCreationListener,
|
||||
FlowContentObserver.OnSpecificModelStateChangedListener, TaskCreationCallback.OnHabitCreated, TaskUpdateCallback.OnHabitUpdated,
|
||||
Callback<List<ItemData>> {
|
||||
static final int SETTINGS = 11;
|
||||
static final int ABOUT = 12;
|
||||
|
||||
static final int TASK_CREATED_RESULT = 1;
|
||||
static final int TASK_UPDATED_RESULT = 2;
|
||||
|
||||
|
|
@ -149,54 +151,8 @@ public class MainActivity extends InstabugAppCompatActivity implements HabitRPGU
|
|||
|
||||
avatarInHeader = new AvatarWithBarsViewModel(this, avatarHeaderView);
|
||||
|
||||
drawer = new DrawerBuilder()
|
||||
.withActivity(this)
|
||||
.withToolbar(toolbar)
|
||||
.withHeaderDivider(false)
|
||||
.withAnimateDrawerItems(true)
|
||||
.addDrawerItems(
|
||||
new PrimaryDrawerItem().withName("Tasks"),
|
||||
|
||||
new SectionDrawerItem().withName("Social"),
|
||||
new PrimaryDrawerItem().withName("Tavern"),
|
||||
new PrimaryDrawerItem().withName("Party"),
|
||||
new PrimaryDrawerItem().withName("Guilds"),
|
||||
new PrimaryDrawerItem().withName("Challenges"),
|
||||
|
||||
|
||||
new SectionDrawerItem().withName("Inventory"),
|
||||
|
||||
new PrimaryDrawerItem().withName("Avatar"),
|
||||
new PrimaryDrawerItem().withName("Equipment"),
|
||||
new PrimaryDrawerItem().withName("Stable"),
|
||||
|
||||
new DividerDrawerItem(),
|
||||
new SecondaryDrawerItem().withName("News"),
|
||||
new SecondaryDrawerItem().withName("Settings").withIdentifier(SETTINGS),
|
||||
new SecondaryDrawerItem().withName("About").withIdentifier(ABOUT)
|
||||
|
||||
)
|
||||
.withStickyFooterDivider(false)
|
||||
.withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {
|
||||
@Override
|
||||
public boolean onItemClick(AdapterView<?> parent, View view, int position, long id, IDrawerItem drawerItem) {
|
||||
// do something with the clicked item :D
|
||||
|
||||
switch (drawerItem.getIdentifier()) {
|
||||
case SETTINGS:
|
||||
startActivity(new Intent(MainActivity.this, PrefsActivity.class));
|
||||
return false;
|
||||
|
||||
case ABOUT:
|
||||
startActivity(new Intent(MainActivity.this, AboutActivity.class));
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
})
|
||||
|
||||
drawer = MainDrawerBuilder.CreateDefaultBuilderSettings(this, toolbar)
|
||||
.withSelectedItem(0)
|
||||
.build();
|
||||
|
||||
final android.content.Context context = getApplicationContext();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,68 @@
|
|||
package com.habitrpg.android.habitica;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import com.habitrpg.android.habitica.ui.MainDrawerBuilder;
|
||||
import com.mikepenz.materialdrawer.Drawer;
|
||||
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.InjectView;
|
||||
|
||||
public class TavernActivity extends AppCompatActivity {
|
||||
|
||||
@InjectView(R.id.toolbar)
|
||||
Toolbar toolbar;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_tavern);
|
||||
|
||||
ButterKnife.inject(this);
|
||||
|
||||
setSupportActionBar(toolbar);
|
||||
|
||||
ActionBar actionBar = getSupportActionBar();
|
||||
|
||||
// Enable Backbutton
|
||||
if (actionBar != null) {
|
||||
actionBar.setTitle(R.string.about_title);
|
||||
actionBar.setDisplayHomeAsUpEnabled(true);
|
||||
actionBar.setDisplayShowHomeEnabled(false);
|
||||
actionBar.setDisplayShowTitleEnabled(true);
|
||||
actionBar.setDisplayUseLogoEnabled(false);
|
||||
actionBar.setHomeButtonEnabled(false);
|
||||
actionBar.setElevation(0);
|
||||
}
|
||||
|
||||
Drawer drawer = MainDrawerBuilder.CreateDefaultBuilderSettings(this, toolbar)
|
||||
.withTranslucentNavigationBar(false)
|
||||
.withTranslucentStatusBar(false)
|
||||
.withDisplayBelowStatusBar(false)
|
||||
.withDisplayBelowToolbar(false)
|
||||
.withActionBarDrawerToggle(false)
|
||||
.withSelectedItem(2)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
// Handle action bar item clicks here. The action bar will
|
||||
// automatically handle clicks on the Home/Up button, so long
|
||||
// as you specify a parent activity in AndroidManifest.xml.
|
||||
int id = item.getItemId();
|
||||
|
||||
//noinspection SimplifiableIfStatement
|
||||
if (id == android.R.id.home) {
|
||||
finish();
|
||||
return true;
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
package com.habitrpg.android.habitica.ui;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
|
||||
import com.habitrpg.android.habitica.AboutActivity;
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.TavernActivity;
|
||||
import com.habitrpg.android.habitica.prefs.PrefsActivity;
|
||||
import com.mikepenz.materialdrawer.Drawer;
|
||||
import com.mikepenz.materialdrawer.DrawerBuilder;
|
||||
import com.mikepenz.materialdrawer.model.DividerDrawerItem;
|
||||
import com.mikepenz.materialdrawer.model.PrimaryDrawerItem;
|
||||
import com.mikepenz.materialdrawer.model.SecondaryDrawerItem;
|
||||
import com.mikepenz.materialdrawer.model.SectionDrawerItem;
|
||||
import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem;
|
||||
|
||||
|
||||
/**
|
||||
* Created by Negue on 18.08.2015.
|
||||
*/
|
||||
public class MainDrawerBuilder {
|
||||
|
||||
static final int SIDEBAR_TAVERN = 2;
|
||||
static final int SIDEBAR_SETTINGS = 11;
|
||||
static final int SIDEBAR_ABOUT = 12;
|
||||
|
||||
public static DrawerBuilder CreateDefaultBuilderSettings(final Activity activity, Toolbar toolbar) {
|
||||
DrawerBuilder builder = new DrawerBuilder()
|
||||
.withActivity(activity);
|
||||
|
||||
if (toolbar != null) {
|
||||
builder.withToolbar(toolbar);
|
||||
}
|
||||
|
||||
builder.withHeaderDivider(false)
|
||||
.withAnimateDrawerItems(true)
|
||||
.addDrawerItems(
|
||||
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_tasks)),
|
||||
|
||||
new SectionDrawerItem().withName(activity.getString(R.string.sidebar_section_social)),
|
||||
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_tavern)).withIdentifier(SIDEBAR_TAVERN),
|
||||
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_party)),
|
||||
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_guilds)),
|
||||
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_challenges)),
|
||||
|
||||
|
||||
new SectionDrawerItem().withName(activity.getString(R.string.sidebar_section_inventory)),
|
||||
|
||||
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_avatar)),
|
||||
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_equipment)),
|
||||
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_stable)),
|
||||
|
||||
new DividerDrawerItem(),
|
||||
new SecondaryDrawerItem().withName(activity.getString(R.string.sidebar_news)),
|
||||
new SecondaryDrawerItem().withName(activity.getString(R.string.sidebar_settings)).withIdentifier(SIDEBAR_SETTINGS),
|
||||
new SecondaryDrawerItem().withName(activity.getString(R.string.sidebar_about)).withIdentifier(SIDEBAR_ABOUT)
|
||||
|
||||
)
|
||||
.withStickyFooterDivider(false)
|
||||
.withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {
|
||||
@Override
|
||||
public boolean onItemClick(AdapterView<?> parent, View view, int position, long id, IDrawerItem drawerItem) {
|
||||
// do something with the clicked item :D
|
||||
|
||||
switch (drawerItem.getIdentifier()) {
|
||||
case SIDEBAR_TAVERN: {
|
||||
activity.startActivity(new Intent(activity, TavernActivity.class));
|
||||
return false;
|
||||
}
|
||||
|
||||
case SIDEBAR_SETTINGS: {
|
||||
activity.startActivity(new Intent(activity, PrefsActivity.class));
|
||||
return false;
|
||||
}
|
||||
|
||||
case SIDEBAR_ABOUT: {
|
||||
activity.startActivity(new Intent(activity, AboutActivity.class));
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
return builder;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue