APPENDIX
Application Store Admin
build.gradle
// Top-level build file where you can add configuration options
common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
classpath 'com.google.gms:google-services:3.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
app/build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
applicationId "com.example.root.projectku"
minSdkVersion 17
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile files('libs/android-async-http-1.4.6.jar')
compile files('libs/http-core-4.1.jar')
compile files('libs/httpclient-4.0.3.jar')
compile 'com.android.support:appcompat-v7:25.3.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.firebase:firebase-auth:9.4.0'
compile 'com.google.firebase:firebase-database:9.4.0'
compile 'com.google.android.gms:play-services-maps:9.4.0'
compile 'com.android.support:design:25.3.0'
compile 'com.google.firebase:firebase-storage:9.4.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.root.projectku">
The ACCESS_COARSE/FINE_LOCATION permissions are not
required to use
Google Maps Android API v2, but you must specify either
coarse or fine
location permissions for the 'MyLocation' functionality.
-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission
android:name="com.google.android.providers.gsf.permission.READ_GSE
RVICES" />
<uses-permission
android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission
android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<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=".MainActivity"></activity>
<activity
android:name=".LoginActivity"
android:label="Login" />
<activity
android:name=".LokasiTokoActivity"
android:label="@string/title_activity_toko" />
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<activity android:name=".ListOrderActivity" />
<activity android:name=".HomeActivity"
android:noHistory="true"/>
<activity android:name=".LauncherActivity"
android:noHistory="true">
<intent-filter>
<action
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".HistoryOrderActivity"></activity>
</application>
</manifest>
LoginActivity.java
package com.example.root.client;
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.text.TextUtils;
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;
public class LoginActivity extends AppCompatActivity implements
View.OnClickListener {
private Button btSignin;
private EditText etEmail;
private EditText etPasword;
private FirebaseAuth firebaseAuth;
private ProgressDialog progressDialog;
private FirebaseUser firebaseUser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
firebaseAuth = FirebaseAuth.getInstance();
if(firebaseAuth.getCurrentUser() != null){
finish();
startActivity(new Intent(getApplicationContext(), MenuActivity.class));
}
etEmail
= (EditText) findViewById(R.id.etEmail);etPassword
= (EditText) findViewById(R.id.etPassword);btSignin
= (Button) findViewById(R.id.btSignin);progressDialog = new ProgressDialog(this);
btSignin.setOnClickListener(this);
}
private void userLogin(){
final String email = etEmail.getText().toString().trim();
String password = etPassword.getText().toString().trim();
if (TextUtils.isEmpty(email)) {
Toast.makeText(this, "enter email please", Toast.LENGTH_LONG).show();
return;
}
if (TextUtils.isEmpty(password)) {
Toast.makeText(this, "enter password please", Toast.LENGTH_LONG).show();
return;
}
progressDialog.setMessage("wait..");
progressDialog.show();
firebaseAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
progressDialog.dismiss();
if (task.isSuccessful()) {
finish();
startActivity(new Intent(getApplicationContext(), MenuActivity.class));
}
}
});
}
@Override
public void onClick(View view) {
if(view == buttonSignIn){
userLogin();
}
}
}
activity_login.xml
<?
xml version="1.0" encoding="utf-8"
?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.root.projectku.LoginActivity">
<LinearLayout
android:layout_centerVertical="true"
android:layout_width="368dp"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:layout_editor_absoluteY="0dp"
tools:layout_editor_absoluteX="8dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="User Login"
android:id="@+id/textView"
android:layout_gravity="center_horizontal" />
<EditText
android:id="@+id/etEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:hint="Enter email"
android:inputType="textEmailAddress" />
<EditText
android:id="@+id/etPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:hint="Enter password"
android:inputType="textPassword" />
<Button
android:id="@+id/btSignin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:text="Login" />
</LinearLayout>
</android.support.constraint.ConstraintLayout>
LauncherActivity.java
package com.example.root.projectku;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DatabaseReference;
public class LauncherActivity extends AppCompatActivity {
private FirebaseAuth firebaseAuth;
private static final int SPLASH_TIME = 2 * 1000;
private DatabaseReference firebaseTable,firebaseSubTable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_launcher);
try {
new Handler().postDelayed(new Runnable() {
public void run() {
firebaseAuth = FirebaseAuth.getInstance();
if(firebaseAuth.getCurrentUser() != null){
Intent intent = new Intent(LauncherActivity.this, HomeActivity.class);
startActivity(intent);
LauncherActivity.this.finish();
}
else
{
Intent intent = new Intent(LauncherActivity.this, MainActivity.class);
startActivity(intent);
LauncherActivity.this.finish();
}
}
}, SPLASH_TIME);
} catch(Exception e){}
}
@Override
public void onBackPressed() {
this.finish();
super.onBackPressed();
}
}
activity_launcher.xml
<?
xml version="1.0" encoding="utf-8"
?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.root.projectku.LauncherActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Welcome..."/>
</android.support.constraint.ConstraintLayout>
HomeActivity.java
package com.example.root.projectku;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
public class HomeActivity extends AppCompatActivity {
Button btList;
Button btBarang;
Button btHistory;
Button btLogout;
private FirebaseAuth firebaseAuth;
private DatabaseReference firebaseTable,firebaseSubTable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
firebaseAuth = FirebaseAuth.getInstance();
btBarang = (Button) findViewById(R.id.btBarang);
btList = (Button) findViewById(R.id.btList);
btHistory = (Button) findViewById(R.id.btHistory);
btLogout = (Button) findViewById(R.id.btLogout);
btBarang.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
startActivity(new Intent(getApplicationContext(), LokasiTokoActivity.class));
}
});
btList.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
firebaseTable = FirebaseDatabase.getInstance().getReference().child("BarangToko");
firebaseTable.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for(DataSnapshot singleSnapshot : snapshot.getChildren()) {
if(singleSnapshot.child("Admin").getValue( ).toString()
.equals(firebaseAuth.getCurrentUs er().getEmail().replace('.',','))) {
ListOrderActivity.KEY_NAMA_TOKO=singl eSnapshot.getKey().toString();
finish();
startActivity(new Intent(getApplicationContext(), ListOrderActivity.class));
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
});
btHistory.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
firebaseTable = FirebaseDatabase.getInstance().getReference().child("BarangToko");
firebaseTable.addValueEventListener(new ValueEventListener() {//Membaca dan mendengarkan perubahan untuk seluruh konten jalur.
@Override
public void onDataChange(DataSnapshot snapshot) {
for(DataSnapshot singleSnapshot : snapshot.getChildren()) {
if(singleSnapshot.child("Admin").getValue( ).toString().equals(firebaseAuth.getCurrentUser().getEmail().replace('.', ','))) {
HistoryOrderActivity.KEY_NAMA_TOKO=si ngleSnapshot.getKey().toString();
finish();
startActivity(new Intent(getApplicationContext(), HistoryOrderActivity.class));
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
});
btLogout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
firebaseAuth.signOut();
finish();
startActivity(new Intent(getApplicationContext(), LoginActivity.class));
}
});
}
}
activity_home.xml
<?
xml version="1.0" encoding="utf-8"
?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.root.projectku.HomeActivity">
<Button
android:id="@+id/btList"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="List Order"
android:layout_marginTop="24dp"
android:layout_below="@+id/btBarang"
android:layout_centerHorizontal="true" />
<Button
android:id="@+id/btBarang"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Update Barang"
android:layout_marginTop="21dp"
android:layout_alignParentTop="true"
android:layout_alignStart="@+id/btHistory" />
<Button
android:id="@+id/btHistory"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Delivery Order"
android:layout_below="@+id/btList"
android:layout_marginTop="21dp"
android:layout_centerHorizontal="true" />
<Button
android:id="@+id/btLogout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Logout"
android:layout_marginTop="21dp"
android:layout_below="@+id/btHistory"
android:layout_centerHorizontal="true" />
</RelativeLayout>
LokasiTokoActivity.java
package com.example.root.projectku;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import java.util.HashMap;
import java.util.Map;
public class LokasiTokoActivity extends AppCompatActivity {
private FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
private DatabaseReference firebaseDatabase=FirebaseDatabase.getInstance().getReference().getRoot(), firebaseTable, firebaseSubTable, firebaseSubSubTable, firebaseRecord;
String temp_key_id_toko,temp_key_toko,temp_key_barang;
Map<String, Object> map_toko,map_barang;
Button btnMenu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lokasi_toko);
btnMenu = (Button) findViewById(R.id.btMenu);
firebaseTable = firebaseDatabase.child("BarangToko");
firebaseSubTable=firebaseTable.child("Alfamart Krakatau");
map_toko = new HashMap<String, Object>();
map_toko.put("Admin","1@gmail,com");
map_toko.put("Latitude", "-6.987331");
map_toko.put("Longitude", "110.437260");
firebaseSubTable.updateChildren(map_toko);
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Aqua Botol 600ml");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "4500");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Alfamart Krakatau");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Bango Kecap Manis 600ml");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "26000");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Alfamart Krakatau");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Indomilk Susu Kental Manis 370gr");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "9500");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Alfamart Krakatau");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Aqua Botol 600ml");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "4500");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Alfamart Krakatau");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Filma Minyak Goreng 2L");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "2500");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Labuhan Raya");
map_toko = new HashMap<String, Object>();
map_toko.put("Admin","2@gmail,com");
map_toko.put("Latitude", "-6.988187");
map_toko.put("Longitude", "110.436879");
firebaseSubTable.updateChildren(map_toko);
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Tango Wafer 300gr");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "21000");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Labuhan Raya");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Sariwangi Teh Celup Asli 25sachet");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "6900");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Labuhan Raya");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Rejoice Shampoo Rich 320ml");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "30500");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Labuhan Raya");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Sariwangi Teh Celup Asli 25sachet");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "6900");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Labuhan Raya");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Nice Facial Tissue Non Perfumed 2Ply 700gr");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "18900");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Alfamidi Sidodadi");
map_toko = new HashMap<String, Object>();
map_toko.put("Admin","3@gmail,com");
map_toko.put("Latitude", "-6.989611");
map_toko.put("Longitude", "110.434986");
firebaseSubTable.updateChildren(map_toko);
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Detol Body Wash Anti Bakteri 450ml");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "30900");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Alfamidi Sidodadi");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Nature E Handbody Lotion 245ml");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "23900");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Alfamidi Sidodadi");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Formula Pasta Gigi Strong Protector 2x100gr");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "17900");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Alfamidi Sidodadi");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Rinso Anti Noda Deterjen 1kg");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "27800");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Point Unika");
map_toko = new HashMap<String, Object>();
map_toko.put("Admin","4@gmail,com");
map_toko.put("Latitude", "-7.025296");
map_toko.put("Longitude", "110.404211");
firebaseSubTable.updateChildren(map_toko);
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Indomie Mie Goreng");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "2000");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Point Unika");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Lifeboy Shampoo Anti Dandruff 170ml");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "15900");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Point Unika");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Close Up Pasta Gigi Menthol");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "15000");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Point Unika");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("So Klin Softergent Powder 800gr");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "14300");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Unika");
map_toko = new HashMap<String, Object>();
map_toko.put("Admin","5@gmail,com");
map_toko.put("Latitude", "-7.024602");
map_toko.put("Longitude", "110.403863");
firebaseSubTable.updateChildren(map_toko);
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Mie Sedap Kari Spesial");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "3500");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Unika");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Pantene Shampo Anti Dandruff 170ml");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "20800");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Unika");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("KRAFT Oreo Selection Biscuit 352gr");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "40900");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Unika");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Garnier Men Acno Fight Wasabi 100ml");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga","28900");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret dan ATM BCA Tinjomoyo");
map_toko = new HashMap<String, Object>();
map_toko.put("Admin","6@gmail,com");
map_toko.put("Latitude", "-7.029462");
map_toko.put("Longitude", "110.408694");
firebaseSubTable.updateChildren(map_toko);
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Listerine Mouthwash Antiseptic 250ml");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "19500");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret dan ATM BCA Tinjomoyo");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Nivea Deo Roll On Extra Whitening");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga","16400");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret dan ATM BCA Tinjomoyo");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Minute Maid Juice Pulpy 350ml");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga","5500");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret dan ATM BCA Tinjomoyo");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Indomaret Beras Ramos Super 5kg");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga","59900");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Kadirojo");
map_toko = new HashMap<String, Object>();
map_toko.put("Admin","7@gmail,com");
map_toko.put("Latitude", "-7.767377");
map_toko.put("Longitude", "110.448636");
firebaseSubTable.updateChildren(map_toko);
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Minyak Goreng Sania Refil 2L");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "23000");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Kadirojo");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Sunligh Pencuci Piring 800ml");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga","14500");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Kadirojo");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Vixal Botol Blue 800ml");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga","14500");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Kadirojo");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("HIT Insektisida Spray Orange 600ml");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga","25900");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Alfamart Kadirojo");
map_toko = new HashMap<String, Object>();
map_toko.put("Admin","8@gmail,com");
map_toko.put("Latitude", "-7.764747");
map_toko.put("Longitude", "110.448845");
firebaseSubTable.updateChildren(map_toko);
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Minyak Goreng Filma Refil 2L");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "23000");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Alfamart Kadirojo");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Pantene Shampo Anti Dandruff 170ml");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "20800");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Alfamart Kadirojo");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Alfamart Beras Ramos Super 5kg");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga","59900");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Maluku");
map_toko = new HashMap<String, Object>();
map_toko.put("Admin","9@gmail,com");
map_toko.put("Latitude", "-6.991882");
map_toko.put("Longitude", "110.436643");
firebaseSubTable.updateChildren(map_toko);
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Force Magic Lemon 600ml");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "23000");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Maluku");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Marjan Boudoin 500ml All Varian");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga", "18900");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
firebaseSubTable=firebaseTable.child("Indomaret Maluku");
firebaseSubSubTable=firebaseSubTable.child("Barang");
firebaseRecord=firebaseSubSubTable.child("Selamat Wafer Kaleng 200g");
map_barang = new HashMap<String, Object>();
map_barang.put("Harga","15900");
map_barang.put("Stok", "1000");
map_barang.put("StokMutasi", "0");
firebaseRecord.updateChildren(map_barang);
Toast.makeText(getApplicationContext(), "BarangToko Sukses ditambahkan", Toast.LENGTH_LONG).show();
btnMenu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
startActivity(new Intent(getApplicationContext(), HomeActivity.class));
}
});
}
}
activity_lokasi_toko.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.root.projectku.LokasiTokoActivity">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:layout_editor_absoluteY="4dp"
tools:layout_editor_absoluteX="113dp">
<Button
android:id="@+id/btMenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="Back to Menu"
tools:layout_editor_absoluteX="130dp"
tools:layout_editor_absoluteY="0dp" />
</RelativeLayout>
</android.support.constraint.ConstraintLayout>
ListOrderActivity.java
package com.example.root.projectku;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
public class ListOrderActivity extends AppCompatActivity {
public static String KEY_NAMA_TOKO="1";
public static String KEY_ID_ORDER="2";
public static String KEY_STATUS="3";
public static String KEY_TANGGAL="4";
public static String KEY_TOTAL="5";
public static String KEY_USERNAME="6";
public static String KEY_ORDER_DETAIL="7";
private FirebaseAuth firebaseAuth = FirebaseAuth.getInstance(); private DatabaseReference firebaseDatabase= FirebaseDatabase.getInstance().getReference().getRoot(),firebaseTable, firebaseSubTable, firebaseSubSubTable, firebaseRecord, firebaseRecordDetail;
String tabel = "Order";
String NamaBarang = "", Qty = "", Stok="0";
int StokInt;
Button btnMenu;
ListView listP, mListData;
ListOrderAdapter adapter;
ArrayList<HashMap<String, String>> listRow = new ArrayList<HashMap<String, String>>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_order);
listP = (ListView) findViewById(R.id.listorder);
btnMenu = (Button) findViewById(R.id.btMenu);
firebaseTable = firebaseDatabase.child(tabel);
firebaseSubTable = firebaseTable.child(KEY_NAMA_TOKO);
Query query = firebaseSubTable.orderByKey();
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String namaToko = "";
String idOrder = "";
String status = "";
String tanggal = "";
String total = "";
String userName = "";
for (DataSnapshot singleSnapshot : dataSnapshot.getChildren()) {
HashMap<String, String> map = new HashMap<String, String>();
idOrder = singleSnapshot.getKey().toString();
status = singleSnapshot.child("Status").getValue().toString();
tanggal = singleSnapshot.child("Tanggal").getValue().toString();
total = singleSnapshot.child("Total").getValue().toString();
userName = singleSnapshot.child("Username").getValue().toString().replace(",",".");
String orderDetail = "";
for (DataSnapshot singleSnapshot2 : singleSnapshot.child("OrderDetail").getChildren()) {
orderDetail = orderDetail + singleSnapshot2.child("NamaBarang").getValue().toString()
+"-"+singleSnapshot2.child("Harga").getValue().toString() +"-"+singleSnapshot2.child("Qty").getValue().toString()+"\r\n";
}
if(status.equals("Pending")) {
map.put(KEY_ID_ORDER, idOrder);
map.put(KEY_STATUS, status);
map.put(KEY_TANGGAL, tanggal);
map.put(KEY_TOTAL, total);
map.put(KEY_USERNAME, userName);
map.put(KEY_ORDER_DETAIL, orderDetail);
listRow.add(map);
}
}
adapter = new ListOrderAdapter(ListOrderActivity.this, listRow);
listP.setAdapter(adapter);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
listP.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, final View view, final int position, long id) {
new AlertDialog.Builder(ListOrderActivity.this)
.setTitle(getResources().getString(R.string.st
atus))
.setMessage(getResources().getString(R.string.
status_message))
.setPositiveButton(getResources().getString(R. string.send), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
TextView idOrderNya = (TextView) view.findViewById(R.id.tvIdOrder);
firebaseRecord=firebaseSubTable.child (idOrderNya.getText().toString());
firebaseRecord.child("Status").setVal ue("Terkirim");
firebaseRecordDetail= firebaseRecord.child("OrderDetail");
firebaseRecordDetail.addChildEventLis tener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Iterator i = dataSnapshot.getChildren().iterator();
while (i.hasNext()) {
i.next();
NamaBarang = (String) ((DataSnapshot) i.next()).getValue();
Qty = (String) ((DataSnapshot) i.next()).getValue();
DatabaseReference
firebaseRecordUpdateQty =
firebaseDatabase.child("BarangToko").child(KEY_NAMA_TOKO).child("Barang") .child(NamaBarang);
firebaseRecordUpdateQty. child("StokMutasi").setValue(Qty);
}
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
DatabaseReference fbStok = firebaseDatabase.child("BarangToko").child(KEY_NAMA_TOKO).child("Barang") ;
fbStok.addListenerForSingleValueEvent (new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
DatabaseReference fbStok2 = firebaseDatabase.child("BarangToko").child(KEY_NAMA_TOKO).child("Barang") .child(dataSnapshot.getKey());
for(DataSnapshot singleSnapshot1 : dataSnapshot.getChildren())
{
String stok = singleSnapshot1.child("Stok").getValue().toString();
String stokmutasi= singleSnapshot1.child("StokMutasi").getValue().toString();
int stokbaru=Integer.parseInt(stok)-Integer.parseInt(stokmutasi);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Toast.makeText(getApplicationContext( ), "Data "+idOrderNya.getText().toString()+" Sukses disimpan", Toast.LENGTH_LONG).show();
finish();
startActivity(new Intent(getApplicationContext(), HomeActivity.class));
}
})
.setNegativeButton(getResources().getString(R. string.cancel), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
TextView idOrderNya = (TextView) view.findViewById(R.id.tvIdOrder);
firebaseRecord=firebaseSubTable.child (idOrderNya.getText().toString());
firebaseRecord.child("Status").setVal ue("Dibatalkan");
Toast.makeText(getApplicationContext( ), "Data "+idOrderNya.getText().toString()+" Sukses dicancel (batalkan)", Toast.LENGTH_LONG).show();
finish();
startActivity(new Intent(getApplicationContext(), HomeActivity.class));
}
})
.show();
return false;
}
});
btnMenu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
startActivity(new Intent(getApplicationContext(), HomeActivity.class));
}
});
}
public void onBackPressed() {
this.finish();
super.onBackPressed();
}
}
ListOrderAdapter.java
package com.example.root.projectku;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.HashMap;
public class ListOrderAdapter extends BaseAdapter {
private Activity activity;
private ArrayList<HashMap<String, String>> data;
private static LayoutInflater inflater = null;
public ListOrderAdapter(Activity a, ArrayList<HashMap<String, String>> d) {
activity = a;
data = d;
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
return data.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if (convertView == null)
vi = inflater.inflate(R.layout.list_order, null);
TextView tvIdOrder= (TextView) vi.findViewById(R.id.tvIdOrder);
TextView tvStatus= (TextView) vi.findViewById(R.id.tvStatus);
TextView tvTanggal= (TextView) vi.findViewById(R.id.tvTanggal);
TextView tvTotal= (TextView) vi.findViewById(R.id.tvTotal); TextView tvUsername= (TextView) vi.findViewById(R.id.tvUsername);
TextView tvOrderDetail= (TextView) vi.findViewById(R.id.tvOrderDetail);
HashMap<String, String> hasil = new HashMap<String, String>();
hasil = data.get(position);
tvIdOrder.setText(hasil.get(ListOrderActivity.KEY_ID_ORDER));
tvStatus.setText(hasil.get(ListOrderActivity.KEY_STATUS));
tvTanggal.setText(hasil.get(ListOrderActivity.KEY_TANGGAL));
tvTotal.setText(hasil.get(ListOrderActivity.KEY_TOTAL));
tvUsername.setText(hasil.get(ListOrderActivity.KEY_USERNAME));
tvOrderDetail.setText(hasil.get(ListOrderActivity.KEY_ORDER_DETA
IL));
return vi;
}
}
activity_list_order.xml
<?
xml version="1.0" encoding="utf-8"
?>
<android.support.constrain