Skip to content

Commit

Permalink
Using nav components, added dashboard, added loading placeholders
Browse files Browse the repository at this point in the history
  • Loading branch information
vojta-horanek committed Jan 17, 2019
1 parent d105edf commit 4786062
Show file tree
Hide file tree
Showing 25 changed files with 1,236 additions and 276 deletions.
1 change: 1 addition & 0 deletions .idea/dictionaries/vojta.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 8 additions & 2 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,10 @@ dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'com.ethanhua:skeleton:1.1.2'
implementation 'io.supercharge:shimmerlayout:2.1.0'

}
3 changes: 2 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@
android:supportsRtl="true"
android:theme="@style/Bakalab.NoActionBar"
tools:ignore="GoogleAppIndexingWarning">
<!--Implement proper reload with saved instance sometime-->
<activity
android:name=".activities.MainActivity"
android:configChanges="orientation"
android:configChanges="orientation|screenSize"
android:label="@string/app_name"
android:theme="@style/Bakalab.NoActionBar">
<intent-filter>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@
import michaelbrabec.bakalab.R;
import michaelbrabec.bakalab.interfaces.Callback;
import michaelbrabec.bakalab.items.LoginResponse;
import michaelbrabec.bakalab.utils.BakaTools;
import michaelbrabec.bakalab.utils.Login;
import michaelbrabec.bakalab.utils.SharedPrefHandler;

public class LoginActivity extends AppCompatActivity implements Callback {

Expand All @@ -29,6 +31,11 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);

if (BakaTools.getToken(this) != null) {
BakaTools.resetToken();
getSharedPreferences("cz.michaelbrabec.fossbakalari", MODE_PRIVATE).edit().clear().apply();
}

final TextInputEditText textBakalari = findViewById(R.id.textBakalari);
final TextInputEditText textJmeno = findViewById(R.id.textJmeno);
final TextInputEditText textHeslo = findViewById(R.id.textHeslo);
Expand Down Expand Up @@ -103,4 +110,10 @@ public void onCallbackFinish(Object result) {
}

}

@Override
public void onBackPressed() {
super.onBackPressed();
finishAffinity();
}
}
Original file line number Diff line number Diff line change
@@ -1,33 +1,36 @@
package michaelbrabec.bakalab.activities;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.MenuItem;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.material.navigation.NavigationView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.navigation.NavController;
import androidx.navigation.NavDestination;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;
import michaelbrabec.bakalab.R;
import michaelbrabec.bakalab.fragments.MainScreenFragment;
import michaelbrabec.bakalab.fragments.UkolyFragment;
import michaelbrabec.bakalab.fragments.ZnamkyFragment;
import michaelbrabec.bakalab.utils.BakaTools;
import michaelbrabec.bakalab.fragments.RozvrhFragment;
import michaelbrabec.bakalab.utils.SharedPrefHandler;

public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener, MainScreenFragment.OnFragmentInteractionListener {
public class MainActivity extends AppCompatActivity {

Float defaultElevation;
NavigationView navigationView;
Toolbar toolbar;
NavController navController;
DrawerLayout drawer;

@Override
protected void onCreate(Bundle savedInstanceState) {
Expand All @@ -43,23 +46,45 @@ protected void onCreate(Bundle savedInstanceState) {

defaultElevation = getResources().getDimension(R.dimen.toolbar_elevation);

DrawerLayout drawer = findViewById(R.id.drawer_layout);

drawer = findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();


navigationView = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);

navController = Navigation.findNavController(findViewById(R.id.nav_host_fragment));
navController.restoreState(savedInstanceState);
NavigationUI.setupWithNavController(navigationView, navController);
/* Set top level fragment = dont show up button */
AppBarConfiguration appBarConfiguration = new AppBarConfiguration
.Builder(
R.id.mainScreenFragment,
R.id.znamkyFragment,
R.id.ukolyFragment,
R.id.rozvrhFragment)
.build();
NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
navController.addOnDestinationChangedListener(new NavController.OnDestinationChangedListener() {
@Override
public void onDestinationChanged(@NonNull NavController controller, @NonNull NavDestination destination, @Nullable Bundle arguments) {
if (destination.getId() == R.id.ukolyFragment) {
toolbar.setElevation(0);
} else {
toolbar.setElevation(getResources().getDimension(R.dimen.toolbar_elevation));
}
}
});

String loginJmeno = SharedPrefHandler.getString(this, "loginJmeno");

TextView navJmeno = navigationView.getHeaderView(0).findViewById(R.id.loginJmeno);

navJmeno.setText(loginJmeno);

getSupportFragmentManager().beginTransaction().replace(R.id.main_fragment, new MainScreenFragment()).commit();


}

Expand All @@ -79,52 +104,9 @@ public void onBackPressed() {
}
}

@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {

int id = item.getItemId();
DrawerLayout drawer = findViewById(R.id.drawer_layout);

if (!navigationView.getMenu().findItem(id).isChecked()) {


if (id == R.id.nav_home) {
getSupportFragmentManager().beginTransaction().replace(R.id.main_fragment, new MainScreenFragment()).commit();

} else if (id == R.id.nav_ukoly) {
getSupportFragmentManager().beginTransaction().replace(R.id.main_fragment, new UkolyFragment()).commit();

} else if (id == R.id.nav_rozvrh) {
getSupportFragmentManager().beginTransaction().replace(R.id.main_fragment, new RozvrhFragment()).commit();

} else if (id == R.id.nav_znamky) {
getSupportFragmentManager().beginTransaction().replace(R.id.main_fragment, new ZnamkyFragment()).commit();
} else if (id == R.id.nav_settings) {
startActivity(new Intent(MainActivity.this, PreferenceActivity.class));
drawer.closeDrawer(GravityCompat.START);
return true;
} else if (id == R.id.nav_sign_out) {
BakaTools.resetToken();
getSharedPreferences("cz.michaelbrabec.fossbakalari", MODE_PRIVATE).edit().clear().apply();
startLogin();
return true;
}

if (id == R.id.nav_ukoly) {
toolbar.setElevation(0);
} else {
toolbar.setElevation(defaultElevation);
}

setTitle(item.getTitle());
}

drawer.closeDrawer(GravityCompat.START);
return true;
}

@Override
public void onFragmentInteraction(Uri uri) {

/* this method is used by the menu xml, its workaround for fading animation when using navigation controller */
public void openSettings(MenuItem item) {
startActivity(new Intent(MainActivity.this, PreferenceActivity.class));
drawer.closeDrawers();
}
}
Loading

0 comments on commit 4786062

Please sign in to comment.