Code Monkey home page Code Monkey logo

dynamicbox's Introduction

Hi there 👋

I’m Mehdi Sakout, a Product Maker from Morocco, I am passionate about bringing ideas to life. I mainly test, code, launch and ship. During the day I’m a Senior Android Engineer working at Elbotola Media, the #1 Sports app in the MENA region and an indie maker by night. I do also contribute to open source whenever time allows it.

Anurag's GitHub stats

dynamicbox's People

Contributors

medyo avatar mrcorporate avatar swanhtet1992 avatar tesla1984 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dynamicbox's Issues

Support absolutelayout

How complex would be to make the lib support absolutelayout? Any reason why it doesn't? Any tips I could use for implementing it by myself? or since the library has been without any updates for about 2 years, would you suggest any other alternative?

How to use in a fragment?

rootView = inflater.inflate(R.layout.game_grid, container, false);//fragment layout
box = new DynamicBox(getActivity(), rootView);
box.showLoadingLayout();
the above is how I use in fragment.But it have some mistake:

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
at android.view.ViewGroup.addViewInner(ViewGroup.java:3589)
at android.view.ViewGroup.addView(ViewGroup.java:3442)
at android.view.ViewGroup.addView(ViewGroup.java:3387)
at android.view.ViewGroup.addView(ViewGroup.java:3363)
at android.support.v4.app.NoSaveStateFrameLayout.wrap(NoSaveStateFrameLayout.java:40)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:951)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:486)
at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1073)
at android.support.v4.view.ViewPager.populate(ViewPager.java:919)
at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1441)
at android.view.View.measure(View.java:16704)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5152)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
at android.view.View.measure(View.java:16704)

Adview and orientation problem

Hey thank you so much for developing this awesome library.

I've problem with viewing the custom view on an another view chich contains an adview.

Here is my custom_view

<ImageView
    android:id="@+id/imageView"
    android:layout_width="250dp"
    android:layout_height="250dp"
    android:layout_gravity="center_horizontal|center_vertical"
    android:layout_marginTop="50dp"
    android:contentDescription="@string/app_name"
    android:src="@drawable/empty_favorites" />

<TextView
    android:id="@+id/title"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="20dp"
    android:gravity="center"
    android:text="Kartlarım listeniz boş"
    android:textSize="25sp" />

and this is the main view;

<ListView
    android:id="@+id/listKartlarim"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" >
</ListView>

<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    ads:adSize="SMART_BANNER"
    ads:adUnitId="@string/bannerid" />

the problem is custom view doesn't centralize itself. You can see the problem on image.

https://www.dropbox.com/s/afug9t7qu2mysq4/2014-06-24%2010.41.54.png

Thank you for help.

DynamicBox make my layout chaotic

I use DynamicBox to show loading indicator when I requesting to server as below:

Activity Layout:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#2196F3"
    android:fitsSystemWindows="true"
    tools:context=".LoginActivity">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|center_vertical"
        android:orientation="vertical"
        android:paddingTop="56dp"
        android:paddingLeft="24dp"
        android:paddingRight="24dp">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="90dp"
            android:layout_gravity="center_horizontal"
            android:adjustViewBounds="true"
            android:layout_marginBottom="24dp"
            android:src="@drawable/main_logo" />

        <android.support.design.widget.TextInputLayout
            android:id="@+id/til_username"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:layout_marginBottom="8dp"
            android:theme="@style/AppTheme.AccountInputLayoutTheme"
            app:errorEnabled="true">

            <android.support.v7.widget.AppCompatEditText
                android:id="@+id/txt_username"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textEmailAddress"
                android:hint="@string/input_email_hint" />
        </android.support.design.widget.TextInputLayout>

        <android.support.design.widget.TextInputLayout
            android:id="@+id/til_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:layout_marginBottom="8dp"
            android:theme="@style/AppTheme.AccountInputLayoutTheme">

            <android.support.v7.widget.AppCompatEditText
                android:id="@+id/txt_password"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textPassword"
                android:hint="@string/input_password_hint" />
        </android.support.design.widget.TextInputLayout>

        <android.support.v7.widget.AppCompatButton
            android:id="@+id/btn_login"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="24dp"
            android:layout_marginBottom="24dp"
            android:padding="12dp"
            android:text="@string/login"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/create_account_link"
            android:gravity="center"
            android:textSize="16sp"
            android:autoLink="web"
            android:linksClickable="true"/>
    </LinearLayout>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Copyright by VNP 2016"
        android:layout_gravity="bottom"
        android:gravity="center"
        android:layout_marginBottom="5dp"/>

</FrameLayout>

Correct Layout on device:
screenshot_2015-12-24-09-29-58

But, when I add DynamicBox to activity:

Java Code:

...
public void onCreate(Bundle saveInstanceState) {
  this.box = new DynamicBox(this, R.layout.activity_myactivity);
}

Layout became:

screenshot_2015-12-24-09-36-10

Stop loading layout

i have listview that is using dynamic box to load however after the listview has loaded it doesnt stop spinning?? even after i call box.hideall(); please help

Error in fragment

Hi medyo,

I'm trying to use your library but I get this error on "onCreateView" of fragment:

07-03 00:00:44.777  17034-17034/com.federico.colantoni.projects.my_project E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.federico.colantoni.projects.my_project, PID: 17034
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.federico.colantoni.projects.my_project/com.federico.colantoni.projects.my_project.activity.MainActivity}: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

Below the code I use:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.my_layout, container, false);

        if (view != null) {
            box = new DynamicBox(getActivity(), view);
            box.showLoadingLayout();
            ...
       }
...
}

Could you explain me how I can get work this library on fragment?

Thanks.

Kind regards.

Why Layout will be empty in fragment?

hi, when i use dynamicbox in WebView fragment. dynamicbox will empty my webView fragment Layout when i set the layout heigh="match_parent".

xml Code( WebView Fragment):

<LinearLayout
    android:id="@+id/shopping_cart_container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <WebView
        android:id="@+id/shopping_webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:visibility="visible" />
</LinearLayout>

Fragment Code

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

        dynamicBox = new DynamicBox(ShoppingCartContentPageFragment.this.getActivity(), frameLayout);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    sessionManager = new SessionManager(getActivity());

    if(sessionManager.getLang().equals("tc")){
        lang = "zh";
    }else{
        lang = "en";
    }

    actionBar = ((SupportActivity) getActivity()).getSupportActionBar();
    actionBar.setTitle(getLocaleStringResource(new Locale(lang), R.string.system_shopping_cart, getActivity()));


    MainActivity.mDrawerToggle.setDrawerIndicatorEnabled(true);

    if(view == null){
        view = inflater.inflate(R.layout.fragment_shopping_cart, container, false);

        initWebView();
    }else{
        ViewGroup viewGroup = (ViewGroup)view.getParent();

        if(viewGroup != null){
            viewGroup.removeView(view);
        }
    }
    return view;
}

private void initWebView(){
    mWebView = (WebView) view.findViewById(R.id.shopping_webView);

    mWebView.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            dynamicBox.setLoadingMessage(getLocaleStringResource(new Locale(lang), R.string.system_loading, getActivity()));
            dynamicBox.showLoadingLayout();

            webViewSuccess = true;
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public void onPageFinished(WebView view, String url) {

            if(webViewSuccess){
                dynamicBox.hideAll();
                view.loadUrl("javascript:$('.shopping-cart-wrapper').css('padding-top','0px');");
                view.loadUrl("javascript:$('.steps-contaier').css('padding-top','0px');");
                view.loadUrl("javascript:$('#cart-to-shopping').remove();");
                view.setVisibility(View.VISIBLE);
            }
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView webview, String url) {

            return true;
        }

        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            Log.e("error_code", description);

            mWebView.setVisibility(View.GONE);

            webViewSuccess = false;

            dynamicBox.setOtherExceptionTitle("Error");
            dynamicBox.setOtherExceptionMessage(description);
            dynamicBox.showExceptionLayout();
            dynamicBox.setClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    dynamicBox.hideAll();
                    mWebView.reload();
                }
            });

            super.onReceivedError(view, errorCode, description, failingUrl);
        }
    });
    mWebView.setWebChromeClient(new WebChromeClient() {
    });

    // Enable Javascript
    mWebView.getSettings().setAppCacheMaxSize(5 * 1024 * 1024); // 5MB
    mWebView.getSettings().setAppCachePath(getActivity().getApplicationContext().getCacheDir().getAbsolutePath());
    mWebView.getSettings().setAllowFileAccess(true);
    mWebView.getSettings().setAppCacheEnabled(true);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);

    mWebView.loadUrl(AppConfig.URL_ROOT + sessionManager.getLang() + "/cart/");

}

But when i hide all Dynamicbox code. This fragment can show webview content

What wrong i make? can you help me?

Can't show the 'Retry' button..

Hi,
When I use the DynamicBox like this

dynamicBox.hideAll();
dynamicBox.setInternetOffTitle("Bağlantı yok!");
dynamicBox.setInternetOffMessage("Şu anda herhangi bir internete bağlı görünmüyorsunuz. Tekrar denemek için tıklayın.");
dynamicBox.setClickListener(this);
dynamicBox.showInternetOffLayout();

I can not show the retry button. But I want to use it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.