commit 78350e8b46c95cbfe3511b769408d47ac814f266 Author: hmalik144 Date: Sun Dec 30 13:56:40 2018 +1100 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..39fb081 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.externalNativeBuild diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser new file mode 100644 index 0000000..a9c62b8 Binary files /dev/null and b/.idea/caches/build_file_checksums.ser differ diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..30aa626 --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..7ac24c7 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..b0c7b20 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..498ec50 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..7f68460 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..89d75dd --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,44 @@ +apply plugin: 'com.android.application' + +android { + signingConfigs { + } + compileSdkVersion 28 + defaultConfig { + applicationId "com.example.h_mal.alameera" + minSdkVersion 21 + targetSdkVersion 27 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + vectorDrawables.useSupportLibrary = true + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + implementation fileTree(include: ['*.jar'], dir: 'libs') + implementation 'com.android.support:appcompat-v7:28.0.0-alpha1' + implementation 'com.android.support:design:28.0.0-alpha1' + implementation 'com.android.support.constraint:constraint-layout:1.1.2' + implementation 'com.android.support:support-vector-drawable:28.0.0-alpha1' + implementation 'com.android.support:support-v4:28.0.0-alpha1' + implementation 'com.github.alamkanak:android-week-view:1.2.6' + implementation 'com.android.support:cardview-v7:28.0.0-alpha1' + implementation 'com.squareup.picasso:picasso:2.5.2' + implementation 'com.google.firebase:firebase-core:16.0.1' + implementation 'com.google.firebase:firebase-auth:16.0.1' + implementation 'com.google.firebase:firebase-database:16.0.1' + implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' + 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' +} + + +apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/app/google-services.json b/app/google-services.json new file mode 100644 index 0000000..4d926e9 --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,73 @@ +{ + "project_info": { + "project_number": "238412654464", + "firebase_url": "https://al-ameera.firebaseio.com", + "project_id": "al-ameera", + "storage_bucket": "al-ameera.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:238412654464:android:922ca6da2bd5c84b", + "android_client_info": { + "package_name": "com.example.h_mal" + } + }, + "oauth_client": [ + { + "client_id": "238412654464-ldlrok937aln4ivv7fu3gbt6pf9ns3aj.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyC2beMMQJCsQBBNu1kDHMNSI5_tkYEldT8" + } + ], + "services": { + "analytics_service": { + "status": 1 + }, + "appinvite_service": { + "status": 1, + "other_platform_oauth_client": [] + }, + "ads_service": { + "status": 2 + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:238412654464:android:084541675aa638f7", + "android_client_info": { + "package_name": "com.example.h_mal.alameera" + } + }, + "oauth_client": [ + { + "client_id": "238412654464-ldlrok937aln4ivv7fu3gbt6pf9ns3aj.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyC2beMMQJCsQBBNu1kDHMNSI5_tkYEldT8" + } + ], + "services": { + "analytics_service": { + "status": 1 + }, + "appinvite_service": { + "status": 1, + "other_platform_oauth_client": [] + }, + "ads_service": { + "status": 2 + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..f1b4245 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/app/src/androidTest/java/com/example/h_mal/alameera/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/example/h_mal/alameera/ExampleInstrumentedTest.java new file mode 100644 index 0000000..9944a9f --- /dev/null +++ b/app/src/androidTest/java/com/example/h_mal/alameera/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.example.h_mal.alameera; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import android.support.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() throws Exception { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getTargetContext(); + + assertEquals("com.example.h_mal.alameera", appContext.getPackageName()); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..c714de5 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/example/h_mal/alameera/BasketActivity.java b/app/src/main/java/com/example/h_mal/alameera/BasketActivity.java new file mode 100644 index 0000000..ffb7288 --- /dev/null +++ b/app/src/main/java/com/example/h_mal/alameera/BasketActivity.java @@ -0,0 +1,16 @@ +package com.example.h_mal.alameera; + +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; + +public class BasketActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_basket); + + CustomAppBarClass newbar = new CustomAppBarClass(this); + newbar.SetpUpBar(); + } +} diff --git a/app/src/main/java/com/example/h_mal/alameera/Booking.java b/app/src/main/java/com/example/h_mal/alameera/Booking.java new file mode 100644 index 0000000..55f0f69 --- /dev/null +++ b/app/src/main/java/com/example/h_mal/alameera/Booking.java @@ -0,0 +1,30 @@ +package com.example.h_mal.alameera; + +/** + * Created by h_mal on 09/09/2018. + */ + +class Booking { + + private String bookingName; + private String bookingTimes; + private String bookingService; + + public Booking(String bookingName, String bookingTimes, String bookingService) { + this.bookingName = bookingName; + this.bookingTimes = bookingTimes; + this.bookingService = bookingService; + } + + public String getBookingName() { + return bookingName; + } + + public String getBookingTimes() { + return bookingTimes; + } + + public String getBookingService() { + return bookingService; + } +} diff --git a/app/src/main/java/com/example/h_mal/alameera/BookingAdapter.java b/app/src/main/java/com/example/h_mal/alameera/BookingAdapter.java new file mode 100644 index 0000000..01e0878 --- /dev/null +++ b/app/src/main/java/com/example/h_mal/alameera/BookingAdapter.java @@ -0,0 +1,29 @@ +package com.example.h_mal.alameera; + +import android.content.Context; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; + +import java.util.List; + +/** + * Created by h_mal on 09/09/2018. + */ + +public class BookingAdapter extends ArrayAdapter{ + + public BookingAdapter(@NonNull Context context, @NonNull List objects) { + super(context, 0, objects); + } + + @NonNull + @Override + public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { + + + return convertView; + } +} diff --git a/app/src/main/java/com/example/h_mal/alameera/CustomAppBarClass.java b/app/src/main/java/com/example/h_mal/alameera/CustomAppBarClass.java new file mode 100644 index 0000000..c84fdee --- /dev/null +++ b/app/src/main/java/com/example/h_mal/alameera/CustomAppBarClass.java @@ -0,0 +1,74 @@ +package com.example.h_mal.alameera; + +import android.app.Activity; +import android.content.Intent; +import android.support.v4.app.NavUtils; +import android.util.Log; +import android.view.Gravity; +import android.view.View; +import android.widget.ImageView; + +import static android.support.v4.content.ContextCompat.startActivity; + +/** + * Created by h_mal on 11/09/2018. + */ + +public class CustomAppBarClass { + + private Activity activity; + + public CustomAppBarClass(Activity activity) { + this.activity = activity; + } + + public void SetpUpBar(){ + + View viewGroupAppBar = activity.findViewById(R.id.appbar); + + ImageView back = viewGroupAppBar.findViewById(R.id.back_icon); + ImageView profile = viewGroupAppBar.findViewById(R.id.action_bar_profile); + + if ((activity.getClass().toString()).equals(MainActivity.class.toString())) { + back.setVisibility(View.GONE); + profile.setVisibility(View.VISIBLE); + profile.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + (MainActivity.drawerLayout).openDrawer(Gravity.START); + Log.i("", "onClick: Mainactivity"); + } + }); + }else{ + profile.setVisibility(View.GONE); + back.setVisibility(View.VISIBLE); + back.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + NavUtils.navigateUpFromSameTask(activity); + } + }); + } + + ImageView basket = viewGroupAppBar.findViewById(R.id.action_bar_basket); + basket.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(activity, BasketActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(activity,intent,null); + } + }); + + ImageView test = this.activity.findViewById(R.id.action_bar_social); + test.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(activity, MediaActivity.class); + startActivity(activity,intent,null); + } + }); + } + + +} diff --git a/app/src/main/java/com/example/h_mal/alameera/FragmentFive.java b/app/src/main/java/com/example/h_mal/alameera/FragmentFive.java new file mode 100644 index 0000000..a80139f --- /dev/null +++ b/app/src/main/java/com/example/h_mal/alameera/FragmentFive.java @@ -0,0 +1,40 @@ +package com.example.h_mal.alameera; + +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.GridView; + +import java.util.ArrayList; + + +public class FragmentFive extends Fragment { + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + View rootView = inflater.inflate(R.layout.fragment_five, container, false); + + GridView gridLayout = rootView.findViewById(R.id.loyalty_card_view); + + ArrayList booleans = new ArrayList<>(); + booleans.add(true); + booleans.add(false); + booleans.add(false); + booleans.add(false); + booleans.add(false); + booleans.add(false); + booleans.add(false); + booleans.add(false); + + LoyaltyAdapter adapter = new LoyaltyAdapter(getActivity(),booleans); + gridLayout.setAdapter(adapter); + + return rootView; + } + + +} diff --git a/app/src/main/java/com/example/h_mal/alameera/FragmentFour.java b/app/src/main/java/com/example/h_mal/alameera/FragmentFour.java new file mode 100644 index 0000000..7d6209f --- /dev/null +++ b/app/src/main/java/com/example/h_mal/alameera/FragmentFour.java @@ -0,0 +1,40 @@ +package com.example.h_mal.alameera; + +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ListView; + +import com.example.h_mal.alameera.FragmentOne.HomeScreenItemAdapter; +import com.example.h_mal.alameera.FragmentOne.HomeScreenItems; + +import java.util.ArrayList; + + +public class FragmentFour extends Fragment { + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + View rootView = inflater.inflate(R.layout.fragment_four, container, false); + + ListView lv = rootView.findViewById(R.id.listViewServices); + + ArrayList items = new ArrayList<>(); + items.add(new HomeScreenItems(R.drawable.hamma,"Hammam Bath")); + items.add(new HomeScreenItems(R.drawable.earring,"Earrings")); + items.add(new HomeScreenItems(R.drawable.hairmist,"Hair Mist")); + items.add(new HomeScreenItems(R.drawable.hair,"Hair")); + items.add(new HomeScreenItems(R.drawable.nails,"Nails")); + + HomeScreenItemAdapter adapter = new HomeScreenItemAdapter(getContext(),items); + + lv.setAdapter(adapter); + + return rootView; + } + +} diff --git a/app/src/main/java/com/example/h_mal/alameera/FragmentHome.java b/app/src/main/java/com/example/h_mal/alameera/FragmentHome.java new file mode 100644 index 0000000..8b0ef96 --- /dev/null +++ b/app/src/main/java/com/example/h_mal/alameera/FragmentHome.java @@ -0,0 +1,54 @@ +package com.example.h_mal.alameera; + +import android.content.Intent; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ListView; + +import com.example.h_mal.alameera.FragmentOne.HomeScreenItemAdapter; +import com.example.h_mal.alameera.FragmentOne.HomeScreenItems; + +import java.util.ArrayList; + + +public class FragmentHome extends Fragment{ + + private HomeScreenItemAdapter adapter; + + private ArrayList items; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View rootView = inflater.inflate(R.layout.fragment_home, container, false); + + ListView lv = rootView.findViewById(R.id.listView); + + items = new ArrayList<>(); + items.add(new HomeScreenItems(R.drawable.hair,"Hair")); + items.add(new HomeScreenItems(R.drawable.nails,"Nails")); + items.add(new HomeScreenItems(R.drawable.hamma,"Hammam Bath")); + items.add(new HomeScreenItems(R.drawable.earring,"Earrings")); + items.add(new HomeScreenItems(R.drawable.hairmist,"Hair Mist")); + + adapter = new HomeScreenItemAdapter(getContext(),items); + + lv.setAdapter(adapter); + + lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + Intent i = new Intent(getActivity(),ServiceActivity.class); + startActivity(i); + } + }); + + return rootView; + } + + +} diff --git a/app/src/main/java/com/example/h_mal/alameera/FragmentOne/HomeScreenItemAdapter.java b/app/src/main/java/com/example/h_mal/alameera/FragmentOne/HomeScreenItemAdapter.java new file mode 100644 index 0000000..cf5b864 --- /dev/null +++ b/app/src/main/java/com/example/h_mal/alameera/FragmentOne/HomeScreenItemAdapter.java @@ -0,0 +1,48 @@ +package com.example.h_mal.alameera.FragmentOne; + +import android.content.Context; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import com.example.h_mal.alameera.R; + +import java.util.ArrayList; + +/** + * Created by h_mal on 22/08/2018. + */ + +public class HomeScreenItemAdapter extends ArrayAdapter{ + + + public HomeScreenItemAdapter(@NonNull Context context, @NonNull ArrayList objects) { + super(context, 0, objects); + } + + @NonNull + @Override + public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { + + View listItemView = convertView; + if (listItemView == null) { + listItemView = LayoutInflater.from(getContext()).inflate( + R.layout.home_screen_list_item, parent, false); + } + HomeScreenItems currentItem = getItem(position); + + ImageView homeScreenImageView = listItemView.findViewById(R.id.home_item_imageView); + homeScreenImageView.setScaleType(ImageView.ScaleType.CENTER_CROP); + homeScreenImageView.setImageResource(currentItem.getImg()); + + TextView homeScreenTextView = listItemView.findViewById(R.id.home_item_textView); + homeScreenTextView.setText(currentItem.getTitle()); + + return listItemView; + } +} diff --git a/app/src/main/java/com/example/h_mal/alameera/FragmentOne/HomeScreenItems.java b/app/src/main/java/com/example/h_mal/alameera/FragmentOne/HomeScreenItems.java new file mode 100644 index 0000000..da27fa8 --- /dev/null +++ b/app/src/main/java/com/example/h_mal/alameera/FragmentOne/HomeScreenItems.java @@ -0,0 +1,24 @@ +package com.example.h_mal.alameera.FragmentOne; + +/** + * Created by h_mal on 22/08/2018. + */ + +public class HomeScreenItems { + + private int img; + private String title; + + public HomeScreenItems(int img, String title) { + this.img = img; + this.title = title; + } + + public int getImg() { + return img; + } + + public String getTitle() { + return title; + } +} diff --git a/app/src/main/java/com/example/h_mal/alameera/FragmentThree.java b/app/src/main/java/com/example/h_mal/alameera/FragmentThree.java new file mode 100644 index 0000000..cf6c32e --- /dev/null +++ b/app/src/main/java/com/example/h_mal/alameera/FragmentThree.java @@ -0,0 +1,87 @@ +package com.example.h_mal.alameera; + +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.v4.app.Fragment; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewTreeObserver; +import android.widget.ListView; +import android.widget.ProgressBar; + +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; + +import java.util.ArrayList; + + +public class FragmentThree extends Fragment { + + private DatabaseReference productsDB; + private Product currentProduct; + private String TAG = "fragmentThree"; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View rootView = inflater.inflate(R.layout.fragment_three, container, false); + + final ListView listView = rootView.findViewById(R.id.listViewProducts); + final ProgressBar pb = rootView.findViewById(R.id.fragProgress); + + listView.setVisibility(View.INVISIBLE); + + final ArrayList products = new ArrayList(); + productsDB = FirebaseDatabase.getInstance().getReference("Products"); + + productsDB.addValueEventListener(new ValueEventListener() { + @Override + public void onDataChange(@NonNull DataSnapshot dataSnapshot) { + products.clear(); + + for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) { + + + Product retrievedProduct = postSnapshot.getValue(Product.class); + + //adding artist to the list + products.add(retrievedProduct); + } + + Log.i(TAG, "onDataChange: current products: " + products.size() + "\n" + + "product image: " + products.get(0).getProductImage()); + + ProductsAdapter adapter = new ProductsAdapter(getActivity(),products,pb); + listView.setAdapter(adapter); + } + + @Override + public void onCancelled(@NonNull DatabaseError databaseError) { + Log.i(TAG, "onCancelled: "+ databaseError); + + } + }); + + pb.setTag(pb.getVisibility()); + pb.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + int newVis = pb.getVisibility(); + if((int)pb.getTag() != newVis) + { + pb.setTag(pb.getVisibility()); + //visibility has changed + listView.setVisibility(View.VISIBLE); + } + } + }); + + return rootView; + } + +} diff --git a/app/src/main/java/com/example/h_mal/alameera/FragmentTwo.java b/app/src/main/java/com/example/h_mal/alameera/FragmentTwo.java new file mode 100644 index 0000000..2bcf115 --- /dev/null +++ b/app/src/main/java/com/example/h_mal/alameera/FragmentTwo.java @@ -0,0 +1,103 @@ +package com.example.h_mal.alameera; + +import android.graphics.RectF; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.alamkanak.weekview.MonthLoader; +import com.alamkanak.weekview.WeekView; +import com.alamkanak.weekview.WeekViewEvent; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +public class FragmentTwo extends Fragment { + + WeekView mWeekView; + List events = new ArrayList(); + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View rootView = inflater.inflate(R.layout.fragment_two, container, false); + +// ListView bookingsListView = rootView.findViewById(R.id.listViewBookings); + +// ArrayList bookingEntry = new ArrayList<>(); +// bookingEntry.add(new Booking()) + +// BookingAdapter adapter = new BookingAdapter(getActivity(),); +// bookingsListView.setAdapter(adapter); + mWeekView = (WeekView) rootView.findViewById(R.id.weekView); + + if ((MainActivity.mAuth).getCurrentUser() == null){ + mWeekView.setVisibility(View.GONE); + }else { + + + + + mWeekView.setOnEventClickListener(new WeekView.EventClickListener() { + @Override + public void onEventClick(WeekViewEvent event, RectF eventRect) { + + } + }); + + mWeekView.setMonthChangeListener(new MonthLoader.MonthChangeListener() { + @Override + public List onMonthChange(int newYear, int newMonth) { + + return events; + } + }); + + mWeekView.setEmptyViewClickListener(new WeekView.EmptyViewClickListener() { + @Override + public void onEmptyViewClicked(Calendar time) { +// openDialog(time); + } + }); + } + + return rootView; + } + +// private void openDialog(final Calendar time) { +// final EditText edittext = new EditText(getActivity()); +// AlertDialog dialog = new AlertDialog.Builder(getActivity()) +// .setTitle("Select Duration") +// .setView(edittext) +// .setPositiveButton("Add", new DialogInterface.OnClickListener() { +// @Override +// public void onClick(DialogInterface dialog, int which) { +// int duration = Integer.parseInt(edittext.getText().toString()); +// CreateCalenderEntry(time, duration); +// } +// }) +// .setNegativeButton("Cancel", null) +// .create(); +// dialog.show(); +// } +// +// private void CreateCalenderEntry(Calendar time, int duration){ +// Calendar endTime = Calendar.getInstance(); +// endTime.set(time.get(Calendar.YEAR), +// time.get(Calendar.MONTH), +// time.get(Calendar.DAY_OF_MONTH), +// (time.get(Calendar.HOUR_OF_DAY)+duration), +// time.get(Calendar.MINUTE)); +// WeekViewEvent event = new WeekViewEvent(1, "added event", time, endTime); +// events.add(event); +// mWeekView.notifyDatasetChanged(); +// } +// +// private String CalenderToString(Calendar item){ +// SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss"); +// return sdf.format(item.getTime()); +// } +} diff --git a/app/src/main/java/com/example/h_mal/alameera/LoginActivity.java b/app/src/main/java/com/example/h_mal/alameera/LoginActivity.java new file mode 100644 index 0000000..81b8fba --- /dev/null +++ b/app/src/main/java/com/example/h_mal/alameera/LoginActivity.java @@ -0,0 +1,72 @@ +package com.example.h_mal.alameera; + +import android.app.Activity; +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.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 { + + private static final String TAG = "Firebase"; + private FirebaseAuth mAuth; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_login); + + CustomAppBarClass newbar = new CustomAppBarClass(this); + newbar.SetpUpBar(); + + mAuth = FirebaseAuth.getInstance(); + + Log.i(getClass().toString(), "onCreate: "+mAuth.getCurrentUser() ); + + final Activity activity = this; + + final EditText email = findViewById(R.id.email); + final EditText password = findViewById(R.id.password); + Button login = findViewById(R.id.login_button); + + login.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String emailString = email.getText().toString(); + String passwordString = password.getText().toString(); + + mAuth.signInWithEmailAndPassword(emailString,passwordString) + .addOnCompleteListener(activity, new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task 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(); + Intent i = new Intent(LoginActivity.this,MainActivity.class); + startActivity(i); + } else { + // If sign in fails, display a message to the user. + Log.w(TAG, "signInWithEmail:failure", task.getException()); + Toast.makeText(LoginActivity.this, "Authentication failed.", + Toast.LENGTH_SHORT).show(); + } + + } + }); + } + }); + } + +} diff --git a/app/src/main/java/com/example/h_mal/alameera/LoyaltyAdapter.java b/app/src/main/java/com/example/h_mal/alameera/LoyaltyAdapter.java new file mode 100644 index 0000000..d266d7f --- /dev/null +++ b/app/src/main/java/com/example/h_mal/alameera/LoyaltyAdapter.java @@ -0,0 +1,46 @@ +package com.example.h_mal.alameera; + +import android.content.Context; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.ImageView; + +import java.util.List; + +/** + * Created by h_mal on 08/09/2018. + */ + +public class LoyaltyAdapter extends ArrayAdapter { + + public LoyaltyAdapter(@NonNull Context context, @NonNull List objects) { + super(context, 0, objects); + } + + @NonNull + @Override + public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { + + View listItemView = convertView; + if (listItemView == null) { + listItemView = LayoutInflater.from(getContext()).inflate( + R.layout.list_item_loyalty, parent, false); + } + + Boolean currentBoolean = getItem(position); + + ImageView cross = listItemView.findViewById(R.id.cross); + + if (currentBoolean){ + cross.setVisibility(View.VISIBLE); + }else{ + cross.setVisibility(View.GONE); + } + + return listItemView; + } +} diff --git a/app/src/main/java/com/example/h_mal/alameera/MainActivity.java b/app/src/main/java/com/example/h_mal/alameera/MainActivity.java new file mode 100644 index 0000000..b5f3b8b --- /dev/null +++ b/app/src/main/java/com/example/h_mal/alameera/MainActivity.java @@ -0,0 +1,171 @@ +package com.example.h_mal.alameera; + +import android.content.Intent; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.design.widget.BottomNavigationView; +import android.support.design.widget.NavigationView; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentPagerAdapter; +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.AppCompatActivity; +import android.util.Log; +import android.view.MenuItem; + +import com.google.firebase.FirebaseApp; +import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.database.FirebaseDatabase; + +public class MainActivity extends AppCompatActivity { + + public static DrawerLayout drawerLayout; + public BottomNavigationView navigation; + + private SectionsPagerAdapter mSectionsPagerAdapter; + + private ViewPager mViewPager; + + public static FirebaseDatabase mDatabase; + public static FirebaseAuth mAuth; + + private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener + = new BottomNavigationView.OnNavigationItemSelectedListener() { + + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem item) { + switch (item.getItemId()) { + case R.id.navigation_home: + mViewPager.setCurrentItem(0); + return true; + case R.id.navigation_bookings: + mViewPager.setCurrentItem(1); + return true; + case R.id.navigation_products: + mViewPager.setCurrentItem(2); + return true; + case R.id.navigation_services: + mViewPager.setCurrentItem(3); + return true; + case R.id.navigation_loyalty_card: + mViewPager.setCurrentItem(4); + return true; + + } + return false; + } + }; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main_2); + + CustomAppBarClass newbar = new CustomAppBarClass(this); + newbar.SetpUpBar(); + + FirebaseApp.initializeApp(this); + mDatabase = FirebaseDatabase.getInstance(); + + mAuth = FirebaseAuth.getInstance(); + Log.i(getClass().toString(), "onCreate: "+mAuth.getCurrentUser() ); + + navigation = (BottomNavigationView) findViewById(R.id.navigation); + navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener); + + mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); + + // Set up the ViewPager with the sections adapter. + mViewPager = (ViewPager) findViewById(R.id.container); + mViewPager.setAdapter(mSectionsPagerAdapter); + mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + + } + + @Override + public void onPageSelected(int position) { + navigation.getMenu().getItem(position).setChecked(true); + } + + @Override + public void onPageScrollStateChanged(int state) { + + } + }); + + drawerLayout = findViewById(R.id.main_content); + ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( + this, drawerLayout, R.string.navigation_drawer_open, R.string.navigation_drawer_close); + drawerLayout.addDrawerListener(toggle); + toggle.syncState(); + + NavigationView navigationView = (NavigationView) findViewById(R.id.drawer); + navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem item) { + switch (item.getItemId()) { + case R.id.drawer_profile: + Log.i("tag","drawer iem pressed"); + Intent i = new Intent(MainActivity.this, LoginActivity.class); + startActivity(i); + break; + case R.id.drawer_settings: +// mAuth.signOut(); + } + return false; + } + }); + } + + @Override + public void onBackPressed() { + if (drawerLayout.isDrawerOpen(GravityCompat.START)) { + drawerLayout.closeDrawer(GravityCompat.START); + } else { + super.onBackPressed(); + } + } + + public class SectionsPagerAdapter extends FragmentPagerAdapter { + + public SectionsPagerAdapter(FragmentManager fm) { + super(fm); + } + + @Override + public Fragment getItem(int position) { + switch (position){ + case 0: + FragmentHome frag1 = new FragmentHome(); + return frag1; + case 1: + FragmentTwo frag2 = new FragmentTwo(); + return frag2; + case 2: + FragmentThree frag3 = new FragmentThree(); + return frag3; + case 3: + FragmentFour frag4 = new FragmentFour(); + return frag4; + case 4: + FragmentFive frag5 = new FragmentFive(); + return frag5; + default: + return null; + } + } + + @Override + public int getCount() { + // Show 3 total pages. + return 5; + } + + + } +} diff --git a/app/src/main/java/com/example/h_mal/alameera/MediaActivity.java b/app/src/main/java/com/example/h_mal/alameera/MediaActivity.java new file mode 100644 index 0000000..5f542e4 --- /dev/null +++ b/app/src/main/java/com/example/h_mal/alameera/MediaActivity.java @@ -0,0 +1,69 @@ +package com.example.h_mal.alameera; + +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.widget.GridView; + +public class MediaActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_media); + + String[] urls = {"https://scontent.cdninstagram.com/vp/88c145b75fa1e3d9117f47f8580419ae/5C2277EC/t51.2885-15/sh0.08/e35/s640x640/38771596_238749096815849_1230150338053406720_n.jpg", + "https://scontent.cdninstagram.com/vp/7d890293e2fba4d70582b32375cf71e5/5C322CFC/t51.2885-15/sh0.08/e35/s640x640/39062496_2142785639319124_5910992730175045632_n.jpg", + "https://scontent.cdninstagram.com/vp/735318253a4ce8c7236501d97acaa64d/5C3227F6/t51.2885-15/sh0.08/e35/s640x640/39028870_1872461566179735_271596500390248448_n.jpg", + "https://scontent.cdninstagram.com/vp/0caf63844f5de2cd4abb0f98cc3d3f5e/5C179D9D/t51.2885-15/sh0.08/e35/s640x640/38081765_216652489032041_4059083826633113600_n.jpg", + "https://scontent.cdninstagram.com/vp/cf8c6c78da13cb6656edf56a78a97cd7/5C312FA7/t51.2885-15/sh0.08/e35/s640x640/38765612_460566954423356_6318058237157441536_n.jpg", + "https://scontent.cdninstagram.com/vp/e963d658036f2121a056f65c89941cd4/5C2842D0/t51.2885-15/sh0.08/e35/s640x640/38957890_256446928313732_8913231619481927680_n.jpg", + "https://scontent.cdninstagram.com/vp/648c0e0a45ce18a73152b75c5267bf33/5C302A8B/t51.2885-15/sh0.08/e35/s640x640/37832517_2124730157848999_4834053723929968640_n.jpg", + "https://scontent.cdninstagram.com/vp/70adf27b9ddd56de875648e762c3487c/5C1CB6C5/t51.2885-15/sh0.08/e35/s640x640/38236748_512938895815366_9171202005413134336_n.jpg", + "https://scontent.cdninstagram.com/vp/ee8fe664b9d8d942775357aa01ae44a7/5C328F30/t51.2885-15/sh0.08/e35/s640x640/38751561_869524503238871_5765603066388676608_n.jpg", + "https://scontent.cdninstagram.com/vp/060617b672136284bac17751094f327e/5C1557D6/t51.2885-15/sh0.08/e35/s640x640/37944746_688496631517727_5580375467807997952_n.jpg", + "https://scontent.cdninstagram.com/vp/7d19e8ee9fe75367fc9e08a701401a92/5C1A7E03/t51.2885-15/sh0.08/e35/s640x640/38232951_1977081345675370_1756124552951234560_n.jpg", + "https://scontent.cdninstagram.com/vp/cac17f50b9d44bac023343b706488a0e/5C1823D4/t51.2885-15/sh0.08/e35/s640x640/38233397_516291448824632_6498309682334007296_n.jpg", + "https://scontent.cdninstagram.com/vp/48320e7628ecdde65e4b6481ccf09282/5C2A13C7/t51.2885-15/sh0.08/e35/s640x640/38072640_269406976997875_5283120759777001472_n.jpg", + "https://scontent.cdninstagram.com/vp/371c2d85f73580841b19edd3e4e49edc/5C2B5E49/t51.2885-15/sh0.08/e35/s640x640/38048315_697554337255907_6426773694894309376_n.jpg", + "https://scontent.cdninstagram.com/vp/b3e83662e901fd9e12be2ec6ecd3ccb8/5C3456BD/t51.2885-15/sh0.08/e35/s640x640/38424195_508198736270374_8861008193006862336_n.jpg", + "https://scontent.cdninstagram.com/vp/6bd964dc8983256a87ccfad715c8d1ce/5C37C180/t51.2885-15/sh0.08/e35/s640x640/38096812_555869778165411_8168457047377969152_n.jpg", + "https://scontent.cdninstagram.com/vp/4419156c789498492cc89ae281eef88b/5C32510F/t51.2885-15/sh0.08/e35/s640x640/38247728_232342714014124_5128838847240601600_n.jpg", + "https://scontent.cdninstagram.com/vp/5fe68f56a243322b423457e34af2ce23/5C2592F4/t51.2885-15/sh0.08/e35/s640x640/37967538_1849715725086077_5096474761131720704_n.jpg", + "https://scontent.cdninstagram.com/vp/1d25a43da22b55ed1e4e10cf51ab26c5/5C1ED467/t51.2885-15/sh0.08/e35/s640x640/37970918_425786541264196_2934713486493614080_n.jpg", + "https://scontent.cdninstagram.com/vp/34fa57a889144d943204f6b1e622c9ac/5C33D628/t51.2885-15/sh0.08/e35/s640x640/38301842_2071421422929584_1504531085353025536_n.jpg", + "https://scontent.cdninstagram.com/vp/840edf8e1a4e4724a30aba5923c2e578/5C29F854/t51.2885-15/sh0.08/e35/s640x640/38162636_439965793182428_2370895163699494912_n.jpg", + "https://scontent.cdninstagram.com/vp/6c524faaee030521edf4bd15285d2296/5C1455EE/t51.2885-15/sh0.08/e35/s640x640/37390228_720398691624494_6843393464000839680_n.jpg", + "https://scontent.cdninstagram.com/vp/4edddca3cedc96d8d84c76aaca2dd469/5C299952/t51.2885-15/sh0.08/e35/s640x640/37245459_247138182770407_5293375793060118528_n.jpg", + "https://scontent.cdninstagram.com/vp/3206eab99db070ab75605c65eac889bf/5C24D074/t51.2885-15/sh0.08/e35/s640x640/36876952_259928678127135_529437904158588928_n.jpg", + "https://scontent.cdninstagram.com/vp/bfcea93f88f8c14f019f992134617953/5C1885D7/t51.2885-15/sh0.08/e35/s640x640/37056213_210488859657750_1150226013196648448_n.jpg", + "https://scontent.cdninstagram.com/vp/e297393725b6499f3d584ab7a790f51b/5C23A090/t51.2885-15/sh0.08/e35/s640x640/36927581_494161214367478_6725525121718550528_n.jpg", + "https://scontent.cdninstagram.com/vp/edee34957a5704209ff0b3ecc978c352/5C34A23E/t51.2885-15/sh0.08/e35/s640x640/36807651_423060241435337_3545566962513870848_n.jpg", + "https://scontent.cdninstagram.com/vp/a9f9ec089a789396bf490c9f06800cbf/5C32D51F/t51.2885-15/sh0.08/e35/s640x640/36979130_508116589620849_7590423061438922752_n.jpg", + "https://scontent.cdninstagram.com/vp/ad72c1d43c0f209daf131f9600feb374/5C2C945D/t51.2885-15/sh0.08/e35/s640x640/37144982_2073772899609111_5129036218167721984_n.jpg", + "https://scontent.cdninstagram.com/vp/7085de2fa8e7776671977f916b701f43/5C14A830/t51.2885-15/sh0.08/e35/s640x640/36806411_178896509647898_5392398080840564736_n.jpg", + "https://scontent.cdninstagram.com/vp/265be3af64ee56782faea9ae3d747adc/5C1CA800/t51.2885-15/sh0.08/e35/s640x640/36865077_631976460494349_6668520262771671040_n.jpg", + "https://scontent.cdninstagram.com/vp/bded4393bbddf47c411d0487bccdfadb/5C18FD7D/t51.2885-15/sh0.08/e35/s640x640/37023301_833037036887013_7508325616274374656_n.jpg", + "https://scontent.cdninstagram.com/vp/1144b70df020e2db10c367e049dd9822/5C2C3C60/t51.2885-15/sh0.08/e35/s640x640/36828776_291365704932715_2351678981800984576_n.jpg", + "https://scontent.cdninstagram.com/vp/41cefc2b0d1d225d1cd736a9de4eea7f/5C14DEB2/t51.2885-15/sh0.08/e35/s640x640/37235666_232187550756757_807694580269973504_n.jpg", + "https://scontent.cdninstagram.com/vp/d9574be54c4d788a645dfd0985b43bfa/5C313FA9/t51.2885-15/sh0.08/e35/s640x640/36940680_510671596033335_8696141462418489344_n.jpg", + "https://scontent.cdninstagram.com/vp/bb570b1d38b549de4cfa8592e2fd3e8b/5C2FC650/t51.2885-15/sh0.08/e35/s640x640/36942800_622671888110333_1778878151519109120_n.jpg", + "https://scontent.cdninstagram.com/vp/c1db8ef6a230574b9acf4fb7cd50db98/5C20AD9A/t51.2885-15/sh0.08/e35/s640x640/36790982_1915004795464963_5659634351906750464_n.jpg", + "https://scontent.cdninstagram.com/vp/07faa90785a57bec6facb5e24f92edbc/5C2FF127/t51.2885-15/sh0.08/e35/s640x640/36948510_269986123755867_7363186791462993920_n.jpg", + "https://scontent.cdninstagram.com/vp/547264af2439294a07ad0d45d4929bd7/5C29D82A/t51.2885-15/sh0.08/e35/s640x640/36556930_252621272136913_4419896285344038912_n.jpg", + "https://scontent.cdninstagram.com/vp/618b2804d1b4e874936f757b92a655ff/5C1C5EDC/t51.2885-15/sh0.08/e35/s640x640/36710950_291752064900996_6239639087884533760_n.jpg", + "https://scontent.cdninstagram.com/vp/acca9ac9a83625623dd7a3f10c39b6e4/5C219BD5/t51.2885-15/sh0.08/e35/s640x640/36985449_203419660367942_415145796460085248_n.jpg", + "https://scontent.cdninstagram.com/vp/24d2deaf27a1ae4be685fb72adc4eb96/5C2CDDD1/t51.2885-15/sh0.08/e35/s640x640/36742564_192058834824233_3268491179070586880_n.jpg", + "https://scontent.cdninstagram.com/vp/5d4feb8658ac6db851b7d36ba05b9eb5/5C265E85/t51.2885-15/sh0.08/e35/s640x640/36784620_2074141452912673_8121556425412444160_n.jpg", + "https://scontent.cdninstagram.com/vp/75d4c43b4ceae891421d19c8dccf68bb/5C1ABD3A/t51.2885-15/sh0.08/e35/p640x640/30590800_199227584199081_3148479837086154752_n.jpg", + "https://scontent.cdninstagram.com/vp/44ad69bf09e96d2654653271860b1989/5C1F2D80/t51.2885-15/sh0.08/e35/p640x640/30592470_2018322261761779_8815353184571621376_n.jpg", + "https://scontent.cdninstagram.com/vp/a9867df592f3ca62d678d3690b5715d9/5C2434B6/t51.2885-15/sh0.08/e35/p640x640/30949074_235502763853733_7425615927816749056_n.jpg", + "https://scontent.cdninstagram.com/vp/0697e3285608a7728b8c3908d4a7e59b/5C39A8EF/t51.2885-15/sh0.08/e35/p640x640/31150196_553996291654018_289122758686670848_n.jpg", + }; + + CustomAppBarClass newbar = new CustomAppBarClass(this); + newbar.SetpUpBar(); + + GridView gridLayout = findViewById(R.id.ig_grid); + gridLayout.setAdapter(new MediaPageAdapter(this,urls)); + } +} diff --git a/app/src/main/java/com/example/h_mal/alameera/MediaPageAdapter.java b/app/src/main/java/com/example/h_mal/alameera/MediaPageAdapter.java new file mode 100644 index 0000000..12015be --- /dev/null +++ b/app/src/main/java/com/example/h_mal/alameera/MediaPageAdapter.java @@ -0,0 +1,129 @@ +package com.example.h_mal.alameera; + +import android.app.Activity; +import android.content.Context; +import android.graphics.Bitmap; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.ImageView; +import android.widget.ProgressBar; + +import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache; +import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator; +import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache; +import com.nostra13.universalimageloader.core.DisplayImageOptions; +import com.nostra13.universalimageloader.core.ImageLoader; +import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; +import com.nostra13.universalimageloader.core.assist.FailReason; +import com.nostra13.universalimageloader.core.assist.QueueProcessingType; +import com.nostra13.universalimageloader.core.decode.BaseImageDecoder; +import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer; +import com.nostra13.universalimageloader.core.download.BaseImageDownloader; +import com.nostra13.universalimageloader.core.listener.ImageLoadingListener; +import com.nostra13.universalimageloader.utils.StorageUtils; + +import java.io.File; + +/** + * Created by h_mal on 12/09/2018. + */ + +public class MediaPageAdapter extends BaseAdapter { + private Activity activity; + private String data[]; + private LayoutInflater inflater=null; + public ImageLoader imageLoader; + DisplayImageOptions options; + + public MediaPageAdapter(Activity activity, String[] data) { + this.activity = activity; + this.data = data; + + inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + File cacheDir = StorageUtils.getOwnCacheDirectory(activity, "MyFolderCache"); + + // Get singletone instance of ImageLoader + imageLoader = ImageLoader.getInstance(); + // Create configuration for ImageLoader (all options are optional) + ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(activity).memoryCacheExtraOptions(480, 800) // default = device screen dimensions + .diskCacheExtraOptions(480, 800, null) + .threadPriority(Thread.NORM_PRIORITY - 2) // default + .tasksProcessingOrder(QueueProcessingType.FIFO) // default + .denyCacheImageMultipleSizesInMemory() + .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) + .memoryCacheSize(2 * 1024 * 1024) + .memoryCacheSizePercentage(13) // default + .diskCache(new UnlimitedDiskCache(cacheDir)) // default + .diskCacheSize(50 * 1024 * 1024) + .diskCacheFileCount(100) + .diskCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default + .imageDownloader(new BaseImageDownloader(activity)) // default + .imageDecoder(new BaseImageDecoder(true)) // default + .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default + .writeDebugLogs().build(); + // You can pass your own memory cache implementation + // Initialize ImageLoader with created configuration. Do it once. + imageLoader.init(config); + //imageLoader.init(ImageLoaderConfiguration.createDefault(a)); + // imageLoader=new ImageLoader(activity.getApplicationContext()); + options = new DisplayImageOptions.Builder() + .displayer(new RoundedBitmapDisplayer(20)) + .build(); + } + + @Override + public int getCount() { + return data.length; + } + + @Override + public Object getItem(int position) { + return position; + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + View listItemView = convertView; + + if (listItemView == null) { + listItemView = LayoutInflater.from(activity).inflate( + R.layout.list_item_insta, parent, false); + } + + ImageView img = listItemView.findViewById(R.id.igImg); + ProgressBar pg = listItemView.findViewById(R.id.progressBar); + + display(img, data[position], pg); + + return listItemView; + } + + public void display(ImageView img, String url, final ProgressBar spinner) + { + imageLoader.displayImage(url, img, options, new ImageLoadingListener() { + @Override + public void onLoadingStarted(String imageUri, View view) { + spinner.setVisibility(View.VISIBLE); + } + @Override + public void onLoadingFailed(String imageUri, View view, FailReason failReason) { + spinner.setVisibility(View.GONE); + } + @Override + public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { + spinner.setVisibility(View.GONE); + } + @Override + public void onLoadingCancelled(String imageUri, View view) { + + } + }); + } +} diff --git a/app/src/main/java/com/example/h_mal/alameera/Product.java b/app/src/main/java/com/example/h_mal/alameera/Product.java new file mode 100644 index 0000000..9db3e9a --- /dev/null +++ b/app/src/main/java/com/example/h_mal/alameera/Product.java @@ -0,0 +1,48 @@ +package com.example.h_mal.alameera; + +import com.google.firebase.database.IgnoreExtraProperties; + +/** + * Created by h_mal on 08/09/2018. + */ + +@IgnoreExtraProperties +public class Product { + + public String productDescription; + public String productImage; + public String productName; + public float productPrice; + public int productQuantity; + + public Product() { + } + + public Product(String productDescription, String productImage, String productName, float productPrice, int productQuantity) { + this.productDescription = productDescription; + this.productImage = productImage; + this.productName = productName; + this.productPrice = productPrice; + this.productQuantity = productQuantity; + } + + public String getProductDescription() { + return productDescription; + } + + public String getProductImage() { + return productImage; + } + + public String getProductName() { + return productName; + } + + public float getProductPrice() { + return productPrice; + } + + public int getProductQuantity() { + return productQuantity; + } +} diff --git a/app/src/main/java/com/example/h_mal/alameera/ProductsAdapter.java b/app/src/main/java/com/example/h_mal/alameera/ProductsAdapter.java new file mode 100644 index 0000000..33ed205 --- /dev/null +++ b/app/src/main/java/com/example/h_mal/alameera/ProductsAdapter.java @@ -0,0 +1,78 @@ +package com.example.h_mal.alameera; + +import android.app.Activity; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.ImageView; +import android.widget.ProgressBar; +import android.widget.TextView; + +import com.squareup.picasso.Callback; +import com.squareup.picasso.Picasso; + +import java.util.ArrayList; + +/** + * Created by h_mal on 08/09/2018. + */ + +public class ProductsAdapter extends ArrayAdapter{ + + private ProgressBar pb; + + private int count = 0; + + public ProductsAdapter(@NonNull Activity context, @NonNull ArrayList objects, ProgressBar pb) { + super(context, 0, objects); + this.pb = pb; + } + + @NonNull + @Override + public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { + View listItemView = convertView; + if (listItemView == null) { + listItemView = LayoutInflater.from(getContext()).inflate( + R.layout.list_item_products, parent, false); + } + Product currentProduct = getItem(position); + + ImageView productImageView = listItemView.findViewById(R.id.prodImageView); + TextView productName = listItemView.findViewById(R.id.prodNameTextView); + TextView productDesc = listItemView.findViewById(R.id.proDescTextView2); + TextView productPrice = listItemView.findViewById(R.id.prodPriceTextView3); + + Picasso.with(getContext()) + .load(currentProduct.getProductImage()) + .placeholder(R.drawable.a) + .into(productImageView, new Callback() { + @Override + public void onSuccess() { + count = count +1; + if (count >= 1){ + pb.setVisibility(View.GONE); + } + } + + @Override + public void onError() { + + } + }); + + productName.setText(currentProduct.getProductName()); + productDesc.setText(currentProduct.getProductDescription()); + productPrice.setText(String.valueOf(currentProduct.getProductPrice())); + + return listItemView; + + } + + + + +} diff --git a/app/src/main/java/com/example/h_mal/alameera/ServiceActivity.java b/app/src/main/java/com/example/h_mal/alameera/ServiceActivity.java new file mode 100644 index 0000000..359a385 --- /dev/null +++ b/app/src/main/java/com/example/h_mal/alameera/ServiceActivity.java @@ -0,0 +1,20 @@ +package com.example.h_mal.alameera; + +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; + +/** + * Created by h_mal on 09/09/2018. + */ + +public class ServiceActivity extends AppCompatActivity{ + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_service); + + + + } +} diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..c7bd21d --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable/a.png b/app/src/main/res/drawable/a.png new file mode 100644 index 0000000..8ac6065 Binary files /dev/null and b/app/src/main/res/drawable/a.png differ diff --git a/app/src/main/res/drawable/basket.png b/app/src/main/res/drawable/basket.png new file mode 100644 index 0000000..9a357cd Binary files /dev/null and b/app/src/main/res/drawable/basket.png differ diff --git a/app/src/main/res/drawable/earring.jpg b/app/src/main/res/drawable/earring.jpg new file mode 100644 index 0000000..c2b5508 Binary files /dev/null and b/app/src/main/res/drawable/earring.jpg differ diff --git a/app/src/main/res/drawable/farm_notif.png b/app/src/main/res/drawable/farm_notif.png new file mode 100644 index 0000000..6e9e0c7 Binary files /dev/null and b/app/src/main/res/drawable/farm_notif.png differ diff --git a/app/src/main/res/drawable/hair.jpg b/app/src/main/res/drawable/hair.jpg new file mode 100644 index 0000000..44076a7 Binary files /dev/null and b/app/src/main/res/drawable/hair.jpg differ diff --git a/app/src/main/res/drawable/hairmist.jpg b/app/src/main/res/drawable/hairmist.jpg new file mode 100644 index 0000000..a1fdf18 Binary files /dev/null and b/app/src/main/res/drawable/hairmist.jpg differ diff --git a/app/src/main/res/drawable/hamma.jpg b/app/src/main/res/drawable/hamma.jpg new file mode 100644 index 0000000..bf12a88 Binary files /dev/null and b/app/src/main/res/drawable/hamma.jpg differ diff --git a/app/src/main/res/drawable/ic_dashboard_black_24dp.xml b/app/src/main/res/drawable/ic_dashboard_black_24dp.xml new file mode 100644 index 0000000..ae6a446 --- /dev/null +++ b/app/src/main/res/drawable/ic_dashboard_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_home_black_24dp.xml b/app/src/main/res/drawable/ic_home_black_24dp.xml new file mode 100644 index 0000000..0c36320 --- /dev/null +++ b/app/src/main/res/drawable/ic_home_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..d5fccc5 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_notifications_black_24dp.xml b/app/src/main/res/drawable/ic_notifications_black_24dp.xml new file mode 100644 index 0000000..0262382 --- /dev/null +++ b/app/src/main/res/drawable/ic_notifications_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/instagram.png b/app/src/main/res/drawable/instagram.png new file mode 100644 index 0000000..f7c051c Binary files /dev/null and b/app/src/main/res/drawable/instagram.png differ diff --git a/app/src/main/res/drawable/nails.jpg b/app/src/main/res/drawable/nails.jpg new file mode 100644 index 0000000..5055431 Binary files /dev/null and b/app/src/main/res/drawable/nails.jpg differ diff --git a/app/src/main/res/drawable/side_nav_bar.xml b/app/src/main/res/drawable/side_nav_bar.xml new file mode 100644 index 0000000..6d81870 --- /dev/null +++ b/app/src/main/res/drawable/side_nav_bar.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/user.png b/app/src/main/res/drawable/user.png new file mode 100644 index 0000000..2ca304a Binary files /dev/null and b/app/src/main/res/drawable/user.png differ diff --git a/app/src/main/res/layout/activity_basket.xml b/app/src/main/res/layout/activity_basket.xml new file mode 100644 index 0000000..c3881ef --- /dev/null +++ b/app/src/main/res/layout/activity_basket.xml @@ -0,0 +1,37 @@ + + + + + + + + + +