Making software AS

SplashScreen.java
package project.;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;

/**
* Created by hp on 2/10/2018.
*/

public class SplashScreen extends AppCompatActivity {

/** Duration of wait **/
private final int SPLASH_DISPLAY_LENGTH = 2000;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.splashscreen);

/* New Handler to start the Menu-Activity
* and close this Splash-Screen after some seconds.*/
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
/* Create an Intent that will start the Menu-Activity. */
startActivity(new Intent(SplashScreen.this, LoginActivity.class));
finish();
}
}, SPLASH_DISPLAY_LENGTH);
}

}


ViewPagerAdapter.java

package project.;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

/**
* Created by hp on 2/9/2018.
*/

public class ViewPagerAdapter extends FragmentPagerAdapter {

public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}

@Override
public Fragment getItem(int position) {
if (position ==0) {
return new CategoryFragment();
} else return new CategoryFragment();
}

@Override
public int getCount() {
return 2;
}
}

How to Start?

SignupActivity.java
package project.;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;

import butterknife.BindView;
import butterknife.ButterKnife;

/**
* Created by hp on 2/10/2018.
*/

public class SignupActivity extends AppCompatActivity {

private static final String TAG = “SignupActivity”;
private FirebaseAuth mAuth;
private ProgressBar progressBar;

EditText _nameText;
@BindView(R.id.input_email) EditText _emailText;
@BindView(R.id.input_password) EditText _passwordText;
@BindView(R.id.button_signup) Button _signupButton;
@BindView(R.id.link_login) TextView _loginLink;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup);

mAuth = FirebaseAuth.getInstance();

ButterKnife.bind(this);

_signupButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// signup();

String email = _emailText.getText().toString().trim();
String password = _passwordText.getText().toString().trim();

if (TextUtils.isEmpty(email)) {
Toast.makeText(getApplicationContext(), “Enter email address!”, Toast.LENGTH_SHORT).show();
return;
}

if (TextUtils.isEmpty(password)) {
Toast.makeText(getApplicationContext(), “Enter password!”, Toast.LENGTH_SHORT).show();
return;
}

if (password.length() < 6) {
Toast.makeText(getApplicationContext(), “Password too short, enter minimum 6 characters!”, Toast.LENGTH_SHORT).show();
return;
}

progressBar.setVisibility(View.VISIBLE);
//create user
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(SignupActivity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Toast.makeText(SignupActivity.this, “createUserWithEmail:onComplete:” + task.isSuccessful(), Toast.LENGTH_SHORT).show();
progressBar.setVisibility(View.GONE);
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
Toast.makeText(SignupActivity.this, “Authentication failed.” + task.getException(),
Toast.LENGTH_SHORT).show();
} else {
startActivity(new Intent(SignupActivity.this, LoginActivity.class));
finish();
}
}
});
}
});

_loginLink.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Finish the registration screen and return to the Login activity
finish();
}
});
}



// public void signup() {
// Log.d(TAG, “Signup”);
//
// if (!validate()) {
// onSignupFailed();
// return;
// }
//
// _signupButton.setEnabled(false);
//
// final ProgressDialog progressDialog = new ProgressDialog(SignupActivity.this,
// R.style.Theme_AppCompat_Light); //edit le
// progressDialog.setIndeterminate(true);
// progressDialog.setMessage(“Creating Account…”);
// progressDialog.show();
//
// String name = _nameText.getText().toString();
// String email = _emailText.getText().toString();
// String password = _passwordText.getText().toString();
//
// // TODO: Implement your own signup logic here.
//
// new android.os.Handler().postDelayed(
// new Runnable() {
// public void run() {
// // On complete call either onSignupSuccess or onSignupFailed
// // depending on success
// onSignupSuccess();
// // onSignupFailed();
// progressDialog.dismiss();
// }
// }, 3000);
// }

// public void onSignupSuccess() {
// _signupButton.setEnabled(true);
// setResult(RESULT_OK, null);
// finish();
// }
//
// public void onSignupFailed() {
// Toast.makeText(getBaseContext(), “Signup failed”, Toast.LENGTH_LONG).show();
//
// _signupButton.setEnabled(true);
// }
//
// public boolean validate() {
// boolean valid = true;
//
// String name = _nameText.getText().toString();
// String email = _emailText.getText().toString();
// String password = _passwordText.getText().toString();
//
// if (name.isEmpty() || name.length() < 3) {
// _nameText.setError(“at least 3 characters”);
// valid = false;
// } else {
// _nameText.setError(null);
// }
//
// if (email.isEmpty() || !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
// _emailText.setError(“enter a valid email address”);
// valid = false;
// } else {
// _emailText.setError(null);
// }
//
// if (password.isEmpty() || password.length() < 4 || password.length() > 10) {
// _passwordText.setError(“between 4 and 10 alphanumeric characters”);
// valid = false;
// } else {
// _passwordText.setError(null);
// }
//
// return valid;
// }

}

Managing Java

SessionManager.java
package project.;

import android.content.Context;
import android.content.SharedPreferences;

/**
* Created by hp on 2/17/2018.
*/

public class SessionManager {

private static final String PREF_NAME = "Oleo";
private static final String ID_USER = "USER_ID";
private static final String EMAIL_USER = "USER_EMAIL";
private SharedPreferences preferences;
private SharedPreferences.Editor editor;

public SessionManager(Context context) {
preferences = context.getSharedPreferences(PREF_NAME, 0);
editor = preferences.edit();
}

public void setEmail(String email) {
editor.putString(EMAIL_USER, email);
editor.commit();
}

public void setUserID(String id) {
editor.putString(ID_USER, id);
editor.commit();
}

public String getUserID() {
return preferences.getString(ID_USER, "");
}

public String getEmailUser() { return preferences.getString(EMAIL_USER, ""); }

public void clearUserID() {
editor.remove(ID_USER);
editor.commit();
}

public void clearAll() {
editor.clear();
editor.commit();
}

}

Coding Java for live

MainActivity.java

package project.;

import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.design.widget.TabLayout;
import android.support.v4.view.GravityCompat;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;

import com.google.firebase.auth.FirebaseAuth;

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{

private ViewPager viewPager;
private DrawerLayout drawer;
private TabLayout tabLayout;
private String[] pageTitle = {“Home”, “Category”};
private FirebaseAuth mAuth;
private SessionManager sessionManager;
private static Context context;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

context = this;
sessionManager = new SessionManager(this);
mAuth = FirebaseAuth.getInstance();

viewPager = (ViewPager)findViewById(R.id.view_pager);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
drawer = (DrawerLayout) findViewById(R.id.drawerLayout);

setSupportActionBar(toolbar);

//create default navigation drawer toggle
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar,
R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();

//setting Tab layout (number of Tabs = number of ViewPager pages)
tabLayout = (TabLayout) findViewById(R.id.tab_layout);
for (int i = 0; i < 2; i++) {
tabLayout.addTab(tabLayout.newTab().setText(pageTitle[i]));
}

//set gravity for tab bar
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);

//handling navigation view item event
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
assert navigationView != null;
navigationView.setNavigationItemSelectedListener(this);

//set viewpager adapter
ViewPagerAdapter pagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(pagerAdapter);

//change Tab selection when swipe ViewPager
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));

//change ViewPager page when tab selected
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}

@Override
public void onTabUnselected(TabLayout.Tab tab) {

}

@Override
public void onTabReselected(TabLayout.Tab tab) {

}
});
}

@Override
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();

if (id == R.id.go) {
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
} else if (id == R.id.close) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);

// Setting Dialog Title
alertDialog.setTitle(“KONFIRMASI”);

// Setting Dialog Message
alertDialog.setMessage(“Anda yakin akan Log Out?”);

// Setting Icon to Dialog
alertDialog.setIcon(R.drawable.seru2);

// Setting Positive “Yes” Button
alertDialog.setPositiveButton(“Ya”, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
mAuth.signOut();
Intent back = new Intent(MainActivity.this, LoginActivity.class);
startActivity(back);
finish();
}
});
// Showing Alert Message
alertDialog.show();
}

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

@Override
public void onBackPressed() {
assert drawer != null;
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}

}

Future Code Java

LoginActivity.java

package project.oleo;

import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;

import butterknife.ButterKnife;
import butterknife.BindView;

/**
* Created by hp on 2/10/2018.
*/

public class LoginActivity extends AppCompatActivity {

private static final String TAG = “LoginActivity”;
private static final int REQUEST_SIGNUP = 0;
private FirebaseAuth mAuth;
private SessionManager session;
private String email, password;

@BindView(R.id.input_email) EditText _emailText;
@BindView(R.id.input_password) EditText _passwordText;
@BindView(R.id.button_login) Button _loginButton;
@BindView(R.id.link_signup) TextView _signupLink;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);

ButterKnife.bind(this);
session = new SessionManager(this);
mAuth = FirebaseAuth.getInstance();
FirebaseUser user = mAuth.getCurrentUser();
if (user != null) {
onLoginSuccess();
}

_loginButton.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
login();
}
});

_signupLink.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// Start the Signup activity
Intent intent = new Intent(getApplicationContext(), SignupActivity.class);
startActivityForResult(intent, REQUEST_SIGNUP);
}
});
}

public void login() {
Log.d(TAG, “Login”);

if (!validate()) {
onLoginFailed();
return;
}

_loginButton.setEnabled(false);

final ProgressDialog progressDialog = new ProgressDialog(LoginActivity.this);
progressDialog.setIndeterminate(true);
progressDialog.setCancelable(false);
progressDialog.setMessage(“Authenticating…”);
progressDialog.show();
email = _emailText.getText().toString();
password = _passwordText.getText().toString();

mAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user’s information
Log.d(TAG, “signInWithEmail:success”);
FirebaseUser user = mAuth.getCurrentUser();
session.setUserID(user.getUid());
session.setEmail(email);
progressDialog.dismiss();
onLoginSuccess();
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, “signInWithEmail:failure”, task.getException());
progressDialog.dismiss();
onLoginFailed();
}

// …
}
});
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_SIGNUP) {
if (resultCode == RESULT_OK) {

// TODO: Implement successful signup logic here
// By default we just finish the Activity and log them in automatically
this.finish();
}
}
}

@Override
public void onBackPressed() {
// disable going back to the MainActivity
moveTaskToBack(true);
}

public void onLoginSuccess() {
_loginButton.setEnabled(true);
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();
}

public void onLoginFailed() {
Toast.makeText(getBaseContext(), “Login failed”, Toast.LENGTH_LONG).show();

_loginButton.setEnabled(true);
}

public boolean validate() {
boolean valid = true;

String email = _emailText.getText().toString();
String password = _passwordText.getText().toString();

if (email.isEmpty() || !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
_emailText.setError(“enter a valid email address”);
valid = false;
} else {
_emailText.setError(null);
}

if (password.isEmpty() || password.length() < 4 || password.length() > 10) {
_passwordText.setError(“between 4 and 10 alphanumeric characters”);
valid = false;
} else {
_passwordText.setError(null);
}

return valid;
}

}

Getting Help Java

CategoryRespons.java
package project.oleo;

import com.google.firebase.firestore.IgnoreExtraProperties;

@IgnoreExtraProperties
public class CategoryRespons {
private String namaCategory;
// private String alamatWisata;
private String fotoCategory;

public CategoryRespons() {
}

public CategoryRespons(String namaCategory, String fotoCategory) {
this.namaCategory = namaCategory;
// this.alamatWisata = alamatWisata;
this.fotoCategory = fotoCategory;
}

public String getNamaCategory() {
return namaCategory;
}

public void setName(String namaCategory) {
this.namaCategory = namaCategory;
}

public String getFotoCategory() {
return fotoCategory;
}

public void setImage(String fotoCategory) {
this.fotoCategory = fotoCategory;
}
}

Using Java

CategoryFragment.java
package project.oleo;

import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.firebase.ui.firestore.FirestoreRecyclerAdapter;
import com.firebase.ui.firestore.FirestoreRecyclerOptions;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.FirebaseFirestoreException;
import com.google.firebase.firestore.Query;

import butterknife.BindView;
import butterknife.ButterKnife;
import de.hdodenhof.circleimageview.CircleImageView;

/**
* Created by hp on 5/19/2018.
*/

public class CategoryFragment extends Fragment{
public CategoryFragment() {
// Required empty public constructor
}

@BindView(R.id.list_category)
RecyclerView friendList;

private FirebaseFirestore db;
private FirestoreRecyclerAdapter adapter;
LinearLayoutManager linearLayoutManager;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_category, container, false);

ButterKnife.bind(this, view);
init();
getFriendList();

return view;
}

private void init(){
linearLayoutManager = new LinearLayoutManager(getActivity().getApplicationContext(), LinearLayoutManager.VERTICAL, false);
friendList.setLayoutManager(linearLayoutManager);
db = FirebaseFirestore.getInstance();
}

private void getFriendList(){
Query query = db.collection(“category”);

FirestoreRecyclerOptions<CategoryRespons> response = new FirestoreRecyclerOptions.Builder<CategoryRespons>()
.setQuery(query, CategoryRespons.class)
.build();

adapter = new FirestoreRecyclerAdapter<CategoryRespons, CategoryHolder>(response) {
@Override
public void onBindViewHolder(CategoryHolder holder, int position, CategoryRespons model) {
holder.textName.setText(model.getNamaCategory());
// holder.textTitle.setText(model.getAlamatWisata());
Glide.with(getActivity().getApplicationContext())
.load(model.getFotoCategory())
.into(holder.imageCategory);

holder.itemView.setOnClickListener(v -> {
// Snackbar.make(friendList, model.getNamaCategory()+”, “+model.getAlamatWisata(), Snackbar.LENGTH_LONG)
Snackbar.make(friendList, model.getNamaCategory(), Snackbar.LENGTH_LONG)
.setAction(“Action”, null).show();
});
}

@Override
public CategoryHolder onCreateViewHolder(ViewGroup group, int i) {
View view = LayoutInflater.from(group.getContext())
.inflate(R.layout.format_list_category, group, false);

return new CategoryHolder(view);
}

@Override
public void onError(FirebaseFirestoreException e) {
Log.e(“error”, e.getMessage());
}
};

adapter.notifyDataSetChanged();
friendList.setAdapter(adapter);
}

public class CategoryHolder extends RecyclerView.ViewHolder {
@BindView(R.id.nama_category)
TextView textName;
@BindView(R.id.foto_category)
CircleImageView imageCategory;
// @BindView(R.id.background_category)
// TextView textTitle;
// RelativeLayout backgroundCategory;

public CategoryHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
}

@Override
public void onStart() {
super.onStart();
adapter.startListening();
}

@Override
public void onStop() {
super.onStop();
adapter.stopListening();
}

}

Starter Java

AndroidManifest.xml

<?xml version=”1.0″ encoding=”utf-8″?>
<manifest xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
package=”project.oleo”
>

<uses-permission android:name=”android.permission.INTERNET” />

<application
android:allowBackup=”true”
android:icon=”@mipmap/ic_launcher”
android:label=”@string/app_name”
android:roundIcon=”@mipmap/ic_launcher_round”
android:supportsRtl=”true”
android:theme=”@style/AppTheme”
>
<activity android:name=”.SplashScreen”>
<intent-filter>
<action android:name=”android.intent.action.MAIN” />

<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
</activity>
<activity android:name=”project.oleo.MainActivity”/>
<activity android:name=”project.oleo.LoginActivity”/>
<activity android:name=”project.oleo.SignupActivity”/>

</application>

</manifest>

build.gradle 1

<?xml version=”1.0″ encoding=”utf-8″?>
<manifest xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
package=”project.oleo”
>

<uses-permission android:name=”android.permission.INTERNET” />

<application
android:allowBackup=”true”
android:icon=”@mipmap/ic_launcher”
android:label=”@string/app_name”
android:roundIcon=”@mipmap/ic_launcher_round”
android:supportsRtl=”true”
android:theme=”@style/AppTheme”
>
<activity android:name=”.SplashScreen”>
<intent-filter>
<action android:name=”android.intent.action.MAIN” />

<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
</activity>
<activity android:name=”project.oleo.MainActivity”/>
<activity android:name=”project.oleo.LoginActivity”/>
<activity android:name=”project.oleo.SignupActivity”/>

</application>

</manifest>

build.gradle 2

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

repositories {
google()
jcenter()
}
dependencies {
classpath ‘com.android.tools.build:gradle:3.0.0’


// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath ‘com.google.gms:google-services:3.1.0’
}
}

allprojects {
repositories {
google()
jcenter()
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

Menu

drawer_menu.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<menu xmlns:android=”http://schemas.android.com/apk/res/android&#8221;>

<item
android:id=”@+id/go”
android:icon=”@drawable/bantuan”
android:title=”Tentang Kami”
/>

<item
android:id=”@+id/close”
android:icon=”@drawable/keluar”
android:title=”Log Out”
/>
</menu>

VALUES
strings.xml

<resources>
<string name=”app_name”>Oleo</string>

<!–login logout–>
<string name=”text_login”>
Tidak mempunyai akun?<u>Buat sekarang</u>
</string>
<string name=”text_signup”>
Sudah punya akun?<u>Login sekarang</u>
</string>

<!–NAV_DRAWER–>
<string name=”navigation_drawer_open”>Open</string>
<string name=”navigation_drawer_close”>Close</string>
<string-array name=”my_items”>
<item>Dummy Item 1</item>
<item>Dummy Item 2</item>
<item>Dummy Item 3</item>
<item>Dummy Item 4</item>
<item>Dummy Item 5</item>
<item>Dummy Item 6</item>
<item>Dummy Item 7</item>
<item>Dummy Item 8</item>
<item>Dummy Item 9</item>
<item>Dummy Item 10</item>
<item>Dummy Item 11</item>
<item>Dummy Item 12</item>
<item>Dummy Item 13</item>
<item>Dummy Item 14</item>
</string-array>
</resources>

styles.xml

<resources>

<!– Base application theme. –>
<style name=”AppTheme” parent=”Theme.AppCompat.Light.DarkActionBar”>
<!– Customize your theme here. –>
<item name=”windowNoTitle”>true</item>
<item name=”windowActionBar”>false</item>
<item name=”colorPrimary”>@color/colorPrimary</item>
<item name=”colorPrimaryDark”>@color/colorPrimaryDark</item>
<item name=”colorAccent”>@color/colorAccent</item>
</style>

</resources>

splash screen

splashscreen.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
android:orientation=”vertical” android:layout_width=”match_parent”
android:layout_height=”match_parent”
>

<ImageView
android:id=”@+id/splashscreen”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:src=”@drawable/logo_oleo”
android:layout_margin=”60dp”
/>

</LinearLayout>