Skip to content

Commit 31cbcba

Browse files
committed
Merge branch 'Settings' into beta
2 parents b924571 + 46de69f commit 31cbcba

File tree

11 files changed

+127
-85
lines changed

11 files changed

+127
-85
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package cn.settile.fanboxviewer.Fragments
2+
3+
import android.os.Bundle
4+
import androidx.preference.Preference
5+
import androidx.preference.PreferenceFragmentCompat
6+
import androidx.preference.SwitchPreference
7+
import cn.settile.fanboxviewer.R
8+
9+
class SettingsFragment : PreferenceFragmentCompat() {
10+
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
11+
setPreferencesFromResource(R.xml.root_preferences, rootKey)
12+
savedInstanceState?.get("")
13+
}
14+
}

app/src/main/java/cn/settile/fanboxviewer/Fragments/UserDetail/PostFragment.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22

33
import android.app.Activity;
44
import android.content.Context;
5+
import android.content.SharedPreferences;
56
import android.os.Bundle;
67
import android.view.LayoutInflater;
78
import android.view.View;
89
import android.view.ViewGroup;
910
import android.view.animation.AnimationUtils;
1011

1112
import androidx.fragment.app.Fragment;
13+
import androidx.preference.PreferenceManager;
1214
import androidx.recyclerview.widget.LinearLayoutManager;
1315
import androidx.recyclerview.widget.RecyclerView;
1416
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
@@ -39,8 +41,7 @@ public PostFragment() {
3941
}
4042

4143
public static PostFragment newInstance() {
42-
PostFragment fragment = new PostFragment();
43-
return fragment;
44+
return new PostFragment();
4445
}
4546

4647
@Override

app/src/main/java/cn/settile/fanboxviewer/ImageViewActivity.java

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
import android.app.DownloadManager;
44
import android.content.Intent;
5+
import android.content.SharedPreferences;
56
import android.graphics.Color;
67
import android.os.Bundle;
78
import android.util.Log;
89

910
import androidx.appcompat.app.AppCompatActivity;
1011
import androidx.palette.graphics.Palette;
12+
import androidx.preference.PreferenceManager;
1113
import androidx.viewpager.widget.ViewPager;
1214

1315
import com.google.android.material.floatingactionbutton.FloatingActionButton;
@@ -39,6 +41,9 @@ public class ImageViewActivity extends AppCompatActivity {
3941
protected void onCreate(Bundle savedInstanceState) {
4042
super.onCreate(savedInstanceState);
4143
setContentView(R.layout.activity_image_view);
44+
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
45+
boolean loadThumb = sp.getBoolean("display_thumb", true);
46+
boolean dlThumb = sp.getBoolean("download_thumb", false);
4247

4348
Intent i = getIntent();
4449
this.images = i.getStringArrayListExtra("Images");
@@ -62,19 +67,24 @@ protected void onCreate(Bundle savedInstanceState) {
6267
String extension = images.get(position)
6368
.substring(images.get(position).lastIndexOf('.'));
6469
String name = detail + "_" + position + extension;
65-
new DownloadRequestor((DownloadManager) getSystemService(DOWNLOAD_SERVICE))
66-
.downloadWithCookie(images.get(position), name, Constants.Cookie);
70+
if (dlThumb)
71+
new DownloadRequestor((DownloadManager) getSystemService(DOWNLOAD_SERVICE))
72+
.downloadWithCookie(thumbs.get(position), name, Constants.Cookie);
73+
else
74+
new DownloadRequestor((DownloadManager) getSystemService(DOWNLOAD_SERVICE))
75+
.downloadWithCookie(images.get(position), name, Constants.Cookie);
6776
} catch (Exception ex) {
6877
Log.e(TAG, "onCreate: ", ex);
6978
}
7079
})
7180
.setFragmentManager(getSupportFragmentManager());
81+
CustomPicassoLoader mi;
7282
for (int index = 0; index < images.size(); index++) {
73-
CustomPicassoLoader mi = new CustomPicassoLoader(this, thumbs.get(index));
74-
75-
83+
if (loadThumb)
84+
mi = new CustomPicassoLoader(this, thumbs.get(index));
85+
else
86+
mi = new CustomPicassoLoader(this, images.get(index));
7687
final int index1 = index;
77-
7888
mi.onLoaded((b) -> {
7989
colors.set(index1,
8090
Palette.from(toBitmap(b))
@@ -86,8 +96,14 @@ protected void onCreate(Bundle savedInstanceState) {
8696
);
8797
}
8898
view.setCurrentItem(pos);
99+
view.invalidate();
89100
new Thread(() -> {
90101
while (colors.size() - 1 < pos) {
102+
try {
103+
Thread.sleep(100);
104+
} catch (InterruptedException e) {
105+
e.printStackTrace();
106+
}
91107
}
92108
view.setBackgroundColor(colors.get(pos));
93109
view.invalidate();

app/src/main/java/cn/settile/fanboxviewer/MainActivity.java

Lines changed: 43 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,25 @@
77
import android.view.MenuItem;
88
import android.widget.ImageView;
99
import android.widget.TextView;
10-
import android.widget.Toast;
1110

12-
import androidx.annotation.NonNull;
13-
import androidx.annotation.Nullable;
1411
import androidx.appcompat.app.ActionBarDrawerToggle;
1512
import androidx.appcompat.app.AppCompatActivity;
1613
import androidx.appcompat.widget.Toolbar;
1714
import androidx.core.view.GravityCompat;
1815
import androidx.drawerlayout.widget.DrawerLayout;
16+
import androidx.fragment.app.FragmentTransaction;
1917
import androidx.lifecycle.ViewModelProvider;
2018
import androidx.navigation.NavController;
21-
import androidx.navigation.NavDestination;
2219
import androidx.navigation.fragment.NavHostFragment;
2320
import androidx.navigation.ui.AppBarConfiguration;
2421
import androidx.navigation.ui.NavigationUI;
2522

2623
import com.google.android.material.navigation.NavigationView;
2724
import com.squareup.picasso.Picasso;
2825

29-
import org.jetbrains.annotations.Contract;
30-
3126
import java.util.Objects;
3227

28+
import cn.settile.fanboxviewer.Fragments.SettingsFragment;
3329
import cn.settile.fanboxviewer.ViewComponents.LogoutDialog;
3430
import cn.settile.fanboxviewer.ViewModels.MainViewModel;
3531

@@ -43,22 +39,20 @@ public class MainActivity extends AppCompatActivity
4339
MainActivity ctx = null;
4440

4541
NavController navController;
42+
private NavHostFragment navHostFragment;
4643

4744
@Override
4845
protected void onCreate(Bundle savedInstanceState) {
4946
super.onCreate(savedInstanceState);
5047
ctx = this;
51-
5248
setContentView(R.layout.activity_main);
5349

54-
5550
prepareUIAndActions();
5651

5752
setTitle(R.string.app_name);
5853
Toolbar toolbar = findViewById(R.id.toolbar);
5954
setSupportActionBar(toolbar);
6055

61-
6256
DrawerLayout drawer = findViewById(R.id.drawer_layout);
6357
NavigationView navigationView = findViewById(R.id.nav_view);
6458

@@ -74,7 +68,8 @@ protected void onCreate(Bundle savedInstanceState) {
7468
//navigationView.getMenu().getItem(1).setEnabled(true);
7569

7670
setResult(-1);
77-
NavHostFragment navHostFragment = (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment_main);
71+
navHostFragment = (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment_main);
72+
assert navHostFragment != null;
7873
navController = navHostFragment.getNavController();
7974
NavigationUI.setupWithNavController(navigationView, navController);
8075

@@ -84,24 +79,18 @@ protected void onCreate(Bundle savedInstanceState) {
8479
.build();
8580

8681

87-
navController.addOnDestinationChangedListener(new NavController.OnDestinationChangedListener() {
88-
@Override
89-
public void onDestinationChanged(@NonNull NavController controller,
90-
@NonNull NavDestination destination, @Nullable Bundle arguments) {
91-
//navHostFragment.getNavController().navigateUp();
92-
Log.d(TAG, destination.getLabel().toString());
82+
navController.addOnDestinationChangedListener((controller, destination, arguments) -> {
83+
//navHostFragment.getNavController().navigateUp();
84+
Log.d(TAG, destination.getLabel().toString());
9385

94-
}
9586
});
9687

9788
}
9889

9990

10091
void prepareUIAndActions() {
101-
10292
viewModel = new ViewModelProvider(this).get(MainViewModel.class);
10393

104-
10594
viewModel.is_logged_in().observe(this, (it) -> {
10695
Log.i(TAG, it.toString());
10796
NavigationView navV = (NavigationView) ctx.findViewById(R.id.nav_view);
@@ -128,16 +117,15 @@ void prepareUIAndActions() {
128117
});
129118

130119
viewModel.getUser_icon_url().observe(this, (it) -> {
131-
if (!Objects.equals(it, "")) Picasso.get()
120+
if (!Objects.equals(it, ""))
121+
Picasso.get()
132122
.load(it)
133123
.placeholder(R.drawable.ic_settings_system_daydream_black_24dp)
134124
.resize(180, 180)
135125
.into((ImageView) findViewById(R.id.userIcon));
136126
});
137127
}
138128

139-
;
140-
141129

142130
@Override
143131
public void onBackPressed() {
@@ -157,6 +145,7 @@ public boolean onCreateOptionsMenu(Menu menu) {
157145
return true;
158146
}
159147

148+
160149
@Override
161150
public boolean onOptionsItemSelected(MenuItem item) {
162151
// Handle action bar item clicks here. The action bar will
@@ -166,6 +155,13 @@ public boolean onOptionsItemSelected(MenuItem item) {
166155

167156
//noinspection SimplifiableIfStatement
168157
if (id == R.id.action_settings) {
158+
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
159+
SettingsFragment sf = new SettingsFragment();
160+
ft.replace(R.id.mainTabFragment, sf);
161+
ft.commit();
162+
if (getSupportActionBar() != null){
163+
getSupportActionBar().setTitle(R.string.action_settings);
164+
}
169165
return true;
170166
} else if (id == R.id.action_refresh) {
171167
return true;
@@ -174,6 +170,7 @@ public boolean onOptionsItemSelected(MenuItem item) {
174170
return super.onOptionsItemSelected(item);
175171
}
176172

173+
177174
@Override
178175
public boolean onNavigationItemSelected(MenuItem item) {
179176
// Handle navigation view item clicks here.
@@ -184,47 +181,58 @@ public boolean onNavigationItemSelected(MenuItem item) {
184181
//Toast.makeText(this, "HOME", Toast.LENGTH_SHORT).show();
185182
} else if (id == R.id.nav_supporting) {
186183
//Toast.makeText(this, "Fan Cards", Toast.LENGTH_SHORT).show();
187-
188184
} else if (id == R.id.nav_search) {
189-
Toast.makeText(this, "Search", Toast.LENGTH_SHORT).show();
185+
// Toast.makeText(this, "Search", Toast.LENGTH_SHORT).show();
190186
} else if (id == R.id.nav_settings) {
191-
//TODO (SettingsActivity)
192-
//callSettings();
187+
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
188+
SettingsFragment sf = new SettingsFragment();
189+
ft.replace(R.id.mainTabFragment, sf);
190+
ft.commit();
191+
if (getSupportActionBar() != null){
192+
getSupportActionBar().setTitle(R.string.action_settings);
193+
}
193194
} else if (id == R.id.nav_logout) {
194-
//Toast.makeText(this, "Logout", Toast.LENGTH_SHORT).show();
195195
new LogoutDialog(this).show();
196196
} else if (id == R.id.nav_recommend) {
197-
Toast.makeText(this, "Recommended", Toast.LENGTH_SHORT).show();
197+
// Toast.makeText(this, "Recommended", Toast.LENGTH_SHORT).show();
198198
}
199199

200200
drawer.closeDrawer(GravityCompat.START);
201201
return true;
202202
}
203203

204+
private void closeDrawer(){
205+
DrawerLayout drawer = findViewById(R.id.drawer_layout);
206+
if (Objects.nonNull(drawer))
207+
drawer.closeDrawer(GravityCompat.START);
208+
}
209+
204210
//UICalls
205211
public void toSupportingFragment(MenuItem v) {
206212
if (navController.getCurrentDestination().getId() != R.id.supportingFragment)
207213
navController.navigate(R.id.supportingFragment);
214+
closeDrawer();
208215
}
209216

210217
public void toMainTabFragment(MenuItem v) {
211218
if (navController.getCurrentDestination().getId() != R.id.mainTabFragment)
212219
navController.navigate(R.id.mainTabFragment);
220+
closeDrawer();
213221
}
214222

223+
public void toSettingsFragment(MenuItem v) {
224+
if (navController.getCurrentDestination().getId() != R.id.settingsFragment)
225+
navController.navigate(R.id.settingsFragment);
226+
closeDrawer();
227+
}
215228

216-
public void callLogout(MenuItem v) {
229+
public void openLogoutDialog(MenuItem ignored){
217230
new LogoutDialog(this).show();
218231
}
219232

220-
@Contract("_->null")
233+
221234
public void callLogin() {
222235
Intent intent = new Intent(this, LoginActivity.class);
223236
if (!viewModel.is_logged_in().getValue()) startActivityForResult(intent, -1);
224237
}
225-
226-
public void callSettings() {
227-
Intent intent = new Intent(this, SettingsActivity.class);
228-
startActivity(intent);
229-
}
230238
}

app/src/main/java/cn/settile/fanboxviewer/SettingsActivity.kt

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package cn.settile.fanboxviewer
22

33
import android.os.Bundle
44
import androidx.appcompat.app.AppCompatActivity
5-
import androidx.preference.PreferenceFragmentCompat
5+
import cn.settile.fanboxviewer.Fragments.SettingsFragment
66

77
class SettingsActivity : AppCompatActivity() {
88

@@ -17,11 +17,4 @@ class SettingsActivity : AppCompatActivity() {
1717
}
1818
supportActionBar?.setDisplayHomeAsUpEnabled(true)
1919
}
20-
21-
class SettingsFragment : PreferenceFragmentCompat() {
22-
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
23-
setPreferencesFromResource(R.xml.root_preferences, rootKey)
24-
//TODO
25-
}
26-
}
2720
}

app/src/main/java/cn/settile/fanboxviewer/SplashActivity.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import androidx.appcompat.app.AppCompatActivity;
2121
import androidx.core.content.ContextCompat;
2222
import androidx.lifecycle.ViewModelProvider;
23+
import androidx.preference.PreferenceManager;
2324

2425
import org.jetbrains.annotations.NotNull;
2526

@@ -44,6 +45,7 @@ protected void onCreate(Bundle savedInstanceState) {
4445
super.onCreate(savedInstanceState);
4546
setContentView(R.layout.activity_splash);
4647

48+
PreferenceManager.setDefaultValues(this , R.xml.root_preferences , false);
4749
setTitle(R.string.loading);
4850
prepareUIAndActions();
4951
if (ContextCompat.checkSelfPermission(

app/src/main/res/menu/activity_drawer_item.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,12 @@
2929
<item
3030
android:id="@+id/nav_settings"
3131
android:icon="@drawable/ic_menu_manage"
32+
android:onClick="toSettingsFragment"
3233
android:title="@string/menu_tools" />
3334
<item
3435
android:id="@+id/nav_logout"
3536
android:icon="@drawable/ic_menu_send"
36-
android:onClick="callLogout"
37+
android:onClick="openLogoutDialog"
3738
android:title="@string/menu_logout" />
3839
</menu>
3940
</item>

0 commit comments

Comments
 (0)